VBA Einstieg


VBA-Start

Der einfachste Start in die VBA-Programmierung geht über Excel, indem man ein Makro erstellt
und etwas aufzeichnet, was man gerne machen möchte. In den VBA Editor kommt man,
indem man sich die Symbolleiste Visual Basic anzeigen lässt und auf Editor klickt.
Dies ist auch der Weg, den man geht, wenn man z.B. einen Filter setzen, die Farbe
ändern, etc. möchte und den Quellcode dazu nicht im Kopf hat.

Variablendeklaration

Klassische Art eine Variable zu deklarieren:

Dim variablenname as Variablentyp

Variablenname: Frei wählbarer Name, bsp. zaehler
Variablentypen (die Wichtigsten):
Integer  – Ganzzahl (1 ; 2 ; 3 ; usw.)
Double   – Kommazahl (1,22 ; 2,342 ; usw.)
String     – Text ( „2esfw2“ ; „dies ist ein text“ ; usw.)
Boolean  – Richtig/Falsch ( True ; False )
Die Deklaration unserer Variable (wir nehmen eine Ganzzahl) würde demnach so aussehen:

Dim zaehler as Integer

Jetzt haben wir Speicherplatz für eine Ganzzahl unter dem Namen Zaehler reserviert.
Programmiertechnisch ist es sinnvoller, wenn der Variablenname auch den Typ enthält (bei
größeren Programmen mit vielen Variablen hilfreich), deshalb zum Beispiel der
Name „iZaehler“ (i für Integer). Desweiteren macht es Sinn, wenn man alle Variablen klein schreibt
und die Großbuchstaben für Funktionen benutzt. Dadurch verliert man nicht die Übersicht!
Um unserem iZaehler nun einen Wert zuzuweisen, müssen wir nur folgendes schreiben:

iZaehler = 123

Ein „=“ weist der Variable einen festen Wert zu. Dieser Wert muss aber dem Variablentyp entsprechen.
Folgendes würde zu einem Fehler führen:

iZaehler = FALSE

If – Abfrage und Switch – Case

In der Programmierung ist es essentiell Werte auf bestimmte Bedingungen zu überprüfen, um das
Programm dynamisch zu gestalten. Die einfachste Art der Überprüfung ist die If – Clause:

If (Bedingung) then
‚was passiert wenn die Bedingung zutrifft
else
‚was andernfalls passiert
End if

Für eine größere Anzahl an Abfragen, z.B. welches Land in einer Variable steht, wäre die If-Clause sehr
umständlich, umfangreich und zu langsam. Aus diesem Grund gibt es die Switch – Case – Funktion:

Select Case Land  ‚ „Land“ ist eine Variable
Case „Finnland“
Msgbox „Helsinki“
Case „Spanien“
Msgbox „Rubi“
Case Else
Msgbox „Standort nicht hinterlegt“
End Select

Schleifen

Es gibt verschiedene Arten von Schleifen
Do…While      – Überprüfung der Bedingung am Ende, nachdem die Schleife einmal durchgelaufen ist.
While…Wend  – Bedingungsprüfung am Anfang, dann Schleifendurchlauf => Optimal für Excel!
For…Next       – Automatisches hochzählen => Festgelegte Anzahl der Schleifendurchläufe
=> Optimal für Excel!
Die wichtigste ist die For…Next Schleife. Ich werde mich auch auf diese beschränken.
Die FN-Schleife beginnt ab einem Wert an zu zählen bis zu einem gegebenen Wert.
Nach jedem Durchgang wird der Zähler automatisch erhöht, bis zum Zielwert.

Dim i as Integer ‚es muss ein Zähler deklariert werden
For i = 1 to 255
‚Hier steht, was die Schleife machen soll
Next

Prozeduren und Funktionen

Der Unterschied zwischen Funktion und Prozedur ist, dass eine Funktion etwas zurück gibt.
Das bedeutet für uns folgendes:
Eine Prozedur rufe ich auf und die macht irgendetwas tolles.
Rufe ich hingegen eine Funktion auf, bekomme ich etwas zurück, mit dem ich weiterarbeiten kann.

Deklarieren einer Prozedur:

Sub NAME ()
‚Hier steht drin, was die Prozedur machen soll.
End Sub

Deklarieren einer Funktion:

Function NAME (Byval ZAHL as Integer) as Datentyp
‚NAME: Name der Funktion,
‚ZAHL:Integerwert, den ich der Funtion gebe
‚Hier steht drin, was die Prozedur machen soll.
‚Datentyp: Rückgabewert(Gespeichert im Funktionsnamen)
End Function