beraten
programmieren
implementieren
trainieren
Datentypen, Variablen und Konstanten
Allgemein
Datentypen definieren, von welcher Art die Daten sind. VBA kennt unterschiedliche Datentypen zum Arbeiten mit ganzen Zahlen, Dezimalzahlen, Zeichenketten, Datumswerten, usw.. Ausserdem kennt VBA den Datentyp Variant, der jeden beliebigen Wert enthalten kann.
Die Angabe eines Datentyps spielt eine Rolle bei der Deklaration von Variablen und Konstanten. Weiters liefert jede Funktion einen Funktionswert (Rückgabewert) von einem bestimmten Datentyp. Auch bei der Angabe von Argumenten, die einer Prozedur übergeben werden, spielen Datentypen eine Rolle.
Variablen
Sie wollen das Ergebnis einer Addition zwischenspeichern, um zu einem späteren Zeitpunkt dieses Ergebnis weiterzuverwenden. Zu diesem Zwecke deklarieren Sie eine Variable, die nichts anderes ist als die Benennung eines Speicherplatzes. Somit können Sie unter dem gewählten Variablennamen den entsprechenden Speicherplatz beschreiben und auslesen.
VBA erlaubt die Verwendung von Variablen ohne vorherige explizite Deklaration. Diese Möglichkeit sollten Sie vermeiden, da dies sehr leicht zu Fehlern (z. B. Tippfehler) führen kann. Um diese Möglichkeit auszuschliessen, setzen Sie an den Beginn jedes Moduls die Anweisung Option Explicit. Aktivieren Sie in den Optionen des VBA-Editors (Extas - Optionen - Registerkarte Editor) die Option Variablendeklaration erforderlich. Dies fügt in jedem weiteren erstellten Modul die Anweisung Option Explicit automatisch hinzu.
Je nach Art und Ort der Variablendeklaration besitzt die Variable einen anderen Gültigkeitsbereich. Folgende Möglichkeiten stehen zur Wahl:
Ort der Deklaration | Schlüsselwort | Gültigkeitsbereich |
---|---|---|
Prozedur | Dim | Innerhalb der Prozedur; nach Beendigung der Prozedur wird die Variable zerstört. |
Prozedur | Static | Innerhalb der Prozedur; nach Beendigung der Prozedur wird die Variable nicht zerstört., der zuletzt gespeicherte Wert bleibt erhalten. |
Modul (am Beginn) | Dim oder Private | Innerhalb des Moduls. |
Modul (am Beginn) | Public | Global gültig. |
Bei der Variablendeklaration geben Sie auch den Datentyp an. Folgende Datentypen stehen zur Auswahl:
Datentyp | Art | Wertebereich |
---|---|---|
Byte | Ganze Zahl | 0 bis 255 |
Integer | Ganze Zahl | -32.768 bis 32.767 |
Long | Ganze Zahl | -2.147.483.648 bis 2.147.483.648 |
Single | Gleitkommazahl | -3,402823E38 bis -1,401298E-45 für negative Werte; 1,401298E-45 bis 3,402823E38 für positive Werte |
Double | Gleitkommazahl | -1,79769313486231E308 bis -4,94065645841247E-324 für negative Werte; 4,94065645841247E-324 bis 1,79769313486232E308 für positive Werte. |
Currency | Währung | -922.337.203.685.477,5808 bis 922.337.203.685.477,5807 |
String | Zeichenkette | 0 bis ca. 2 Milliarden |
Boolean | Wahrheitswert | True oder False |
Variant | Beliebig | Werte jedes beliebigen Datentyps |
Object | Objekte | Beliebiger Verweis auf ein Objekt |
Für die Namen von Variablen gelten folgende Regeln:
- Beginnen mit einem Buchstaben.
- Keine Leerzeichen, Punkte, Operatoren oder andere Sonderzeichen.
- Maximal 255 Zeichen lang.
- Nicht ident mit reservierten Schlüsselwörtern (If, Else, Sub, ...).
- Eindeutigkeit innerhalb des Gültigkeitsbereichs.
Bei Namen, die sich aus mehreren Wörtern zusammensetzen, empfiehlt sich der sogenannte Camel-Style, d. h. jedes Wort innerhalb des Namens beginnt mit einem Grossbuchstaben.
Nachfolgend ein paar Beispiele für Variablendeklarationen:
'Deklaration von Variablen
Dim meinText As String
Dim eineZahl as Integer
Dim istRichtig as Boolean
Nach der Deklaration besitzt jede Variable einen Standardwert abhängig vom Datentyp. Numerische Variablen enthalten den Wert 0, Stringvariablen enthalten eine leere Zeichenkette und Boolsche Variablen enthalten den Wert False.
Eine Variablendeklaration ohne Angabe des Datentyps weisst der Variable den Datentyp Variant zu. Dieser Datentyp kann zur Laufzeit Werte jeden beliebigen Datentyps annehmen. Verwenden Sie diese Möglichkeit nur in Ausnahmefällen, da die Wertkontrolle durch Angabe des Datentyps der Vermeidung von Programmfehlern dient.
Sie können auch mehrere Variablen in einer Zeile deklarieren. Beachten Sie, dass trotzdem bei jeder Variable der Datentyp angegeben werden muss.
'Deklaration von Variablen in einer Zeile 'i und j als Integer Dim i As Integer, j As Integer 'a als Variant, b als Integer Dim a, b As Integer
Konstanten
Konstanten sind im Unterschied zu Variablen unveränderlich. Der Wert der Konstante wird bei der Deklaration angegeben. Zusätzlich empfiehlt sich auch die Angabe des entsprechenden Datentyps.
Je nach Art und Ort der Konstantendeklaration besitzt die Konstante einen anderen Gültigkeitsbereich. Folgende Möglichkeiten stehen zur Wahl:
Ort der Deklaration | Schlüsselwort | Gültigkeitsbereich |
---|---|---|
Prozedur | Const | Innerhalb der Prozedur; nach Beendigung der Prozedur wird die Konstante zerstört. |
Modul (am Beginn) | Private Const | Innerhalb des Moduls. |
Modul (am Beginn) | Public Const | Global gültig. |
Nachfolgend ein paar Beispiele für Konstantendeklarationen:
'Deklaration von Konstanten 'Konstante innerhalb einer Prozedur Const maximalWert As Integer = 10 'Private Konstante am Beginn des Moduls Private Const meldungsText As String = "Gültig innerhalb des Moduls" 'Globale Konstante am Beginn des Moduls Public Const appName As String = "Meine Anwendung"
Download Codebeispiele
Die gezeigten Codebeispiele können Sie als xlsm-Datei herunterladen.