In Variablen können Sie Werte speichern, die Sie im späteren Verlauf Ihres Programms wieder benötigen. Stellen Sie sich Variablen für den Anfang wie das Gedächtnis Ihrer Anwendung vor. In diesem Artikel lernen Sie lokale Variablen, die grauen Zellen einer Prozedur, kennen.
Kurze Erläuterung
Sie erzeugen eine lokale Variable über das Schlüsselwort Dim, gefolgt von einem beliebigen Variablennamen. Danach nennen Sie das Schlüsselwort As und den Datentyp. Dieser bestimmt, was in der Variablen gespeichert werden darf und was nicht. Anschließend können Sie ihr einen Wert zuweisen. Dazu nennen Sie den Namen der Variablen gefolgt von einem Gleichheitszeichen und dem Wert.
Wichtig ist, dass Sie das Konzept der Gültigkeit von lokalen Variablen verstehen: Eine lokale Variablen existiert nur innerhalb einer Prozedur (oder Funktion). Sie können sie daher auch nur in einer Prozedur erzeugen und auch nur dort verwenden. In einer anderen Prozeduren steht Ihnen die Variable nicht zur Verfügung.
Sie verwenden die Variable, indem Sie sie über ihren Namen aufrufen. Sie können die Variable z.B. mit der Anweisung MsgBox in einem Meldungsfenster ausgeben.
Die Syntax zeigt Ihnen beispielhaft, wie Sie eine lokale Variable erstellen, ihr einen Wert zuweisen und sie danach aufrufen:
Option Explicit Sub Ihre_Prozedur() 'Erstellung und Wertzuweisung Dim Variablenname As Datentyp Variablenname = Wert 'Aufruf MsgBox Variablenname End Sub
Beachten Sie die Anweisung Option Explicit oberhalb der Prozedur. Steht dieser Befehl im Modul, müssen Sie beim Erzeugen der Variablen das Schlüsselwort Dim verwenden.
Tipp: Ich empfehle Ihnen, Option Explicit in jedem Modul zu verwenden. Dies gibt Ihnen mehr Kontrolle über Ihre Variablen und trägt dazu bei, Fehler zu vermeiden.
Ausführliche Erklärungen
Ort der Erzeugung
Lokale Variablen können Sie nur innerhalb einer Prozedur (oder Funktion) erstellen, müssen ihr dort einen Wert zuweisen und können sie auch nur dort aufrufen.
Name der Variablen
Sie können den Namen Ihrer Variablen frei wählen. Es gibt nur einige wenige Regeln:
- Das erste Zeichen muss ein Buchstabe sein.
- Es dürfen nur Buchstaben, Zahlen und bestimmte Sonderzeichen benutzt werden.
- Innerhalb einer Prozedur (oder Funktion) darf es keine zwei Variablen mit dem gleichen Namen geben.
Tipp: Wählen Sie einen Namen, der Aufschluss darüber gibt, welche Daten Sie in der Variablen speichern (z.B. Zahl für eine Zahlenvariable oder Betrag für eine Variable, in der Geldbeträge gespeichert werden sollen).
Datentyp
Sie können festlegen, was für Daten in der Variablen gespeichert werden dürfen, sprich Texte, Zahlen, Datumsangaben usw. Die Anweisung Option Explicit macht die Angabe eines Datentyps erforderlich.
Die folgende Tabelle stellt Ihnen die Datentypen in VBA vor:
Datentyp | Bedeutung | Speicherbedarf |
---|---|---|
Boolean | Ja/Nein-Werte (True oder False) | 2 Byte |
Byte | Ganze Zahl von 0 bis 255 | 1 Byte |
Integer | Ganze Zahl von -32.768 bis +32.767 | 2 Byte |
Long | Ganze Zahl von -2.147.483.648 bis +2.147.483.647 | 4 Byte |
LongLong | Ganze Zahl von ca. -9 Trillionen bis +9 Trillionen | 8 Byte |
Currency | Ganze Zahl von ca. -9 Billionen bis +9 Billionen und 4 Nachkommastellen | 8 Byte |
Single | Gleitkommazahl mit einfacher Genauigkeit | 4 Byte |
Double | Gleitkommazahl mit doppelter Genauigkeit | 8 Byte |
Date | Datumsangaben mit Uhrzeit vom 01.01.100 bis 31.12.9999 | 8 Byte |
String | Texte | 10 Byte (+) |
Object | Verweis auf ein Objekt | 4 Byte |
Variant | Kein definierter Datentyp, kann alles aufnehmen | unterschiedlich |
Gültigkeit
Lokale Variablen existieren nur innerhalb der Prozedur (oder Funktion), in welcher Sie sie erzeugt haben. In anderen Prozeduren können Sie die Variable nicht verwenden.
Hinweis: Technisch gesehen handelt es sich bei einer Variablen um eine Stelle im Arbeitsspeicher Ihres Computers. Sobald Ihr VBA-Programm die Prozedur ausgeführt hat, werden alle Variablen geleert, d.h. der dafür reservierte Bereich im Arbeitsspeicher wird wieder frei gemacht.
Beispiele
Hier sehen Sie, wie Sie Variablen verschiedenen Typs erstellen und ihnen einen Inhalt zuweisen können:
Sub Variablen() 'Ganze Zahl Dim Zahl As Integer Zahl = 100 'Währung Dim Betrag As Currency Betrag = 9.99 'Gleitkommazahl Dim Zahl2 As Single Zahl2 = 5.8 'Datum Dim Datum As Date Datum = "24.12.2020" 'Zeit Dim Zeit As Date Zeit = "12:00" 'Datum mit Uhrzeit Dim DatumZeit As Date DatumZeit = "24.12.2020 12:00" 'Texte Dim Text As String Text = "Hallo Welt" End Sub
Weiterführende Informationen
Wie gesagt, können Sie eine lokale Variable nicht außerhalb der Prozedur aufrufen, in der Sie sie erzeugt haben. Sie können die Variable aber an eine andere Prozedur oder Funktion übergeben und so den in ihr gespeicherten Wert dort weiterverwenden.
Hier lesen Sie mehr zum Übergeben von Variablen.
Über die Anweisung Option Explicit, welche Sie am Beginn des Moduls notieren müssen, machen Sie die Angabe eine Datentyps für die Variable erforderlich.
Warum das sinnvoll sein kann, lesen Sie in diesem Artikel: Option Explicit.
Neben lokalen Variablen gibt es auch globale, modulweite und statische Variablen. In den verlinkten Artikeln erfahren Sie mehr dazu.
Jetzt VBA lernen ohne Programmierkenntnisse!
Sie wollen die VBA-Programmierung in Excel lernen und sicher beherrschen? Dann empfehle ich Ihnen mein Seminar Excel VBA-Programmierung – Grundkurs. Der Einstieg in VBA mit Excel ist ohne Vorkenntnisse in Programmiersprachen möglich!