VBA [basics]: Variablen und Datentypen

Wer mit VBA programmiert, kommt nicht weit, ohne das Konzept der Variablen zu verstehen. Variablen sind gewissermaßen der Arbeitsspeicher eines Programms: Sie nehmen Werte zwischenzeitlich auf, damit wir damit rechnen, sie vergleichen oder weitergeben können. Und damit VBA weiß, was für eine Art von Wert in einer Variablen landet – eine Zahl, ein Text, ein Datum -, gibt es die Datentypen. Wer die falschen Datentypen wählt, riskiert subtile Fehler, die manchmal erst beim Kunden auftauchen. Wer sie richtig einsetzt, schreibt stabileren und schnelleren Code. In diesem Artikel zeigen wir, wie Variablen deklariert werden, welche Datentypen es gibt und wann man welchen verwendet.

Was ist eine Variable?

Stell Dir vor, Du berechnest in einer Prozedur den Gesamtpreis aus Menge und Einzelpreis. Du könntest den Einzelpreis direkt als feste Zahl in die Formel schreiben, aber sobald sich der Preis ändert oder Du denselben Wert an mehreren Stellen benötigst, wird das mühsam.

Stattdessen speicherst Du den Wert in einer Variablen und verwendest deren Namen im Code – dann musst Du den Wert nur an einer einzigen Stelle anpassen.

Eine Variable ist also ein benannter Speicherplatz im Arbeitsspeicher, der während der Ausführung einer Prozedur einen Wert aufnehmen und verändern kann.

Der Name der Variablen ist frei wählbar, solange er einige Regeln einhält: Er darf kein VBA-Schlüsselwort sein (also nicht Sub, End, If und so weiter), er darf keine Leerzeichen enthalten und er muss mit einem Buchstaben beginnen.

Warum Option Explicit so wichtig ist

Bevor wir zur Deklaration von Variablen kommen, müssen wir kurz auf die Einstellung Option Explicit eingehen.

Wir haben ihr bereits einen eigenen Artikel gewidmet – VBA [basics]: Warum Option Explicit wichtig ist (www.access-basics.de/701) – und empfehlen Dir dringend, diesen zu lesen, sofern Du das noch nicht getan hast.

Der Kern der Sache ist folgender: Ohne Option Explicit erlaubt VBA es, Variablen einfach zu verwenden, ohne sie vorher zu deklarieren.

Das klingt bequem, führt aber zu einem der häufigsten Fehler überhaupt: Ein Tippfehler im Variablennamen wird nicht als Fehler erkannt, sondern als neue Variable behandelt, die schlicht leer ist.

Der Code läuft weiter – nur mit dem falschen Wert. Solche Fehler zu finden kostet Stunden.

Mit Option Explicit ganz oben in jedem Modul erzwingt VBA, dass jede Variable vor ihrer Verwendung deklariert werden muss.

Du kannst diese Einstellung dauerhaft aktivieren, sodass sie in jedem neuen Modul automatisch steht – wie das geht, zeigen wir im Artikel VBA [basics]: Optionen des VBA-Editors (www.access-basics.de/683).

Variablen deklarieren

Eine Variable wird mit dem Schlüsselwort Dim deklariert, gefolgt vom Namen der Variablen und dem Schlüsselwort As sowie dem gewünschten Datentyp. Das sieht dann zum Beispiel so aus:

Dim intAnzahl As Integer
Dim strName As String
Dim datGeburtstag As Date

Variablendeklarationen stehen immer am Anfang einer Prozedur, bevor der eigentliche Code beginnt.

Das ist zwar technisch nicht in allen Fällen zwingend erforderlich, aber es ist eine gute Gewohnheit, die den Code übersichtlich hält und dazu führt, dass man auf einen Blick sieht, mit welchen Variablen eine Prozedur arbeitet.

Wichtig: Wenn man mehrere Variablen in einer Zeile deklariert, muss jede ihren eigenen Typ bekommen. Die folgende Schreibweise ist ein klassischer Fallstrick:

Dim lngA, lngB As Long  'Achtung: lngA ist Variant, 
                         'nur lngB ist Long!

Wer das nicht weiß, wundert sich, warum der Code merkwürdig reagiert. Die sichere Schreibweise ist eine eigene Zeile pro Variable:

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

den kompletten Artikel im PDF-Format mit Beispieldatenbank

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar