Das Tutorial ist kein "VBA for Excel" oder "VBA for Word" Tutorial, sondern soll euch einfach einen allgemeinen Einblick in VBA (Visual Basic for Applications, der Skriptsprache für Windows) geben.
Erstmal allgemein, was ist VBA?
VBA ist die Sprache zur Steuerung des Micrsoft Windows Application Core. Zu Deutsch: Das Heimwerkerset für jeden Scheiß, den MS seit ca. 1990 entworfen hat. Es ist dafür gedacht möglichst einfach und ohne compliler (brauchst nicht wissen was das ist, aber es ist kompliziert deswegen ohne) eine bestehende Applikation (=Anwendung, Programm, sowas wie Word) den eigenen Anforderungen anzupassen.
Jedes System hat sowas, auch Apple und alle Unix Systeme (Linux und co.). Nur sind die leider alle unterschiedlich.
VBA wird von vielen Nerds (Computerfreaks) gern als "zu langsam, zu wenig möglichkeiten" abgestempelt. Allerdings muss man sagen das "Zu langsam" immer am Programmierer liegt und fast alle Windowsviren in VBA geschrieben wurden - so viel also zu "zu wenig möglichkeiten"...
VBA Code Editor:Wenn du Office hast, hast du einen Code editor. Der übernimmt für dich auch solche Sachen wie Groß/Klein schreibung und ähnliches. Geh einfach in einem deiner Office Progs auf "View / Toolbars / Control Toolbox” und klick dann auf den "Command Button". Der wird dann in dein Dokument eingefügt. Wenn du auf ihn doppelklickst öffnet sich der Code Editor - tata!
VBA Code Sytax:
Variablen
Damit man Sachen (Zahlen, Strings, Objekte) schön und einfach ablegen kann braucht man Variablen, die dann den zu speicherten Wert auch speichern. In VBA macht man das mit:
Dim VariablenNamen
Mit Komma kann man mehrere Variablen erstellen:
Dim Var1, Var2
Einen Wert zuweisen kann mann dann ganz einfach mit dem Zuweisungsoperator: "="
VariablenNamen = "Ich bin ein String"
VariablenNamen = 1
Achtung: Bevor du eine Variable abfragen kannst musst du ihr einen Wert zugewiesen haben!
SchleifenIf … End if:
Führt was aus, wenn die Vorraussetzung true (kein Anglizismus sondern ein Datentyp!) ist
If Var = 1 Then
Score = Score + 1
End If
If .. Else .. End If
If Var = 1 Then
Score = Score + 1
Else
Score = Score –1
End If
For … Next
Wiederholt alles was dazwischen ist sooft wie man will
For Count = 1 to 10
Score = Score + 1
Next Count
While … Wend:
Wiederholt solange, wie eine gegebene Vorraussetzung true zurückgibt
While Score < 10
Score = Score + 1
Wend
Do … Loop:
Wiederholt solange, wie eine gegebene Vorraussetzung true zurückgibt oder den Wert true annimmt
Do
Score = Score + 1
Loop Until Score = 10
BefehleVBA verfügt über einen vordefinierten Befehlsatz, der einem die Programmierarbeit erleicht.
Starten wir mit den Arithmetischen:
+ Addiert zwei Zahlen
- Subtrahiert zwei Zahlen
* Multipliziert zwei Zahlen
/ Dividiert zwei zahlen (Achtung vor division durch 0!!!)
= Zwei Möglichkeiten: Kann entweder als sogenannter Zuweisungs
operator verwendet werden (um eine Variablen einen Wert zu-
zuweisen) oder der Vergleichsoperator, der zwei Werte ver-
gleicht und "true" oder "false" zurückgibt.
Dim var = (1 = 1)
VBA stellt auch Funktionen und Objekte zur Verfügung. Die schreib ich hier aber nicht alle hin - es sind einfach zuviele... Ich nehm einfach eines als Beispiel, alle anderen findet ihr in der Hilfe vom Code Editor "Help / Microsoft Visual Basic Documentation / Visual Basic Language Reference"
Ein schon relativ komplexer Befehl, den uns VBA zu verfügung stellt ist msgBox. Er hat die Form
Beispiel MsgBox(prompt[, buttons] [, title] [, helpfile, context])Alle parameter (das sind die Teile in der Klammer erklär ich jetzt nicht, wieder in die Hilfe gucken). Ich zeig euch jetzt einfach ein Beispiel für die einfachste Methode, ein "Hello World"
MsgBox("Hello World!")
Erste Aufgabe:
Erzeuge einen Button. Wenn man ihn klickt soll eine Schleife ablaufen, die eine Variable erhöht und eine msgBox öffnet, die den augenblicklichen Wert des Counters anzeigt. Pass aber auf, dass deine Schleife in jedem Fall aufhört!