Variablen sind Zeichen oder Zeichenfolgen die für ein beliebiges Element ihrer, durch den Datentyp festgelegten, Klassifizierung stehen. Bei der Namensgebung von Variablen sind einige Regeln zu beachten:
Der Variablenname muß mit einem Buchstaben beginnen.
Der Name darf nur aus Buchstaben, Zahlen und dem Unterstreichungsstrich (_) bestehen. Andere Zeichen wie Symbole, Leer oder Interpunktionszeichen sind nicht erlaubt.
Der Name darf auch nicht aus einem reservierten Wort bestehen. Reservierte Wörter sind zum Beispiel alle von Visual Basic for Applications verwendete Schlüsselwörter wie If oder For, ihnen wurde ja bereits eine Bedeutung zugewiesen.
Der Name der Variablen darf 200 Zeichen nicht überschreiten.
Damit sind die Konventionen für die Namensgebung festgelegt. Ein weiterer wichtiger Punkt im Zusammenhang mit Variablen ist der Datentyp den eine Variable annehmen kann. Die einzelnen Datentypen sind mit ihren Wertebereichen in der folgenden Tabelle zusammengefaßt:
Datentyp Typenkennzeichen Speicherbedarf Wertebereich
Byte keines 1 Byte Ganze Zahl im Bereich von 0 bis 255
Integer % 2 Byte Ganze Zahl im Bereich von -32.768 bis 32.767
Long & 4 Byte Ganze Zahl im Bereich von -2.147.483.648 bis 2.147.483.647
Single ! 4 Byte Reelle Zahlen im Bereich von -3,4028223E38 bis –1,401298E-45 für neagative Werte und 1,401298E-45 bis 3,4028223E38 für positive Werte
Double # 8 Byte Reelle Zahlen im Bereich von –1,79769313486232E308 bis –4,94065645841247E-324 für negative Zahlen und 4,94065645841247E-324 bis 1,79769313486232E308 für positive Zahlen
Currency @ 8 Byte Festkommazahl im Bereich von –922.337.203.685.477,5808 bis 922. 337.203.685.477,5807
String keines max. 65.535 Alle Zeichen des Systems
Boolean keines 2 Byte True und False
Date keines Datum des Fomats 01.01.97
Variablen deklarieren
Sie können Variablen erst dann verwenden, wenn dem System die Variable bekannt gemacht wird. Diesen Vorgang bezeichnet man als deklarieren, genauer als explizite Deklaration, da Sie die Variable vor Verwendung im Programm eindeutig festlegen. Sie können bei der Deklaration auch festlegen, welchen Datentyp die Variable annehmen soll. Damit steht dann auch fest wieviel Speicher eine Variable belegt und wie groß der Wertebereich ist. Das Format für die Deklaration sieht folgendermaßen aus:
Dim <Variablenname> As <Datentyp>
Einige Beispiele für die Deklaration von Variablen
Dim Gehalt As Currency
Dim Zähler As Integer
Dim Wahrheit As Boolean
Dim Stadt As String
Dim Länderkennzeichen As String * 3
Im letzten Beispiel wird die Variable Länderkennzeichen auf drei Zeichen beschränkt. Das ist hier besonders sinnvoll, da es keine Länderkennzeichen gibt die mehr als drei Zeichen besitzen. Der Befehl Dim erfüllt aber noch eine weitere Aufgabe, er weist der Variablen einen Standardinhalt zu. Bei Strings ist dies eine leere Zeichenfolge.
Bei der Zuweisung von Variablen mit einem neuen Wert ist besonders darauf zu achten, daß die Variable den Wert auch aufnehmen kann. Es müssen dazu die Datentypen des Ausdrucks und der Variablen übereinstimmen. Die Syntax für eine solche Zuweisung sieht folgendermaßen aus:
<Variablenname> = <Ausdruck>
Wir wenden uns nun einem Beispiel zu, das diesen Sachverhalt etwas näher bringen soll. Dabei wird über den Befehl InputBox ein Dialogfeld auf dem Bildschirm geöffnet. Hier geben Sie dann einen Text ein. Nachdem das Fenster über die Schaltfläche OK geschlossen wurde, wird der Text in einem Nachrichtenfenster mit dem Namen VBA-BEISPIEL ausgegeben und zwar mehrzeilig.
Sub EingabeText()
‚
‚ Texteingabe über die InputBox
‚
Dim Eingabe As String
Eingabe = InputBox(„Geben Sie einen kurzen Text ein!“)
MsgBox „Ihre Texteingabe lautet: “ & vbCrLf & vbCrLf & Eingabe, vbInformation, „VBA-Beispiel“
End Sub
Eingabe eines Textes über die InputBox und die formatierte Ausgabe über den Befehl MsgBox.
Im Eingabefeld können Sie einen Text eingeben. Dieser kann auch Zahlen oder Sonderzeichen enthalten.
Der Befehl InputBox gibt den eingegebenen Text an die Variable Eingabe weiter. Diese wiederum übergibt ihren Inhalt dem Befehl MsgBox. Der Befehl MsgBox schließlich stellt den eingegebenen Text in der zweiten Textzeile dar, da die einzelnen Textzeilen durch den Parameter vbCrLf getrennt sind. Die Variable Eingabe wurde vorher über die Dim-Anweisung für die Aufnahme von Texten vorbereitet.
Das Ergebnis ist die Ausgabe des eingegebenen Texts in der zweiten Zeile des Nachrichtenfensters.
Gültigkeitsbereich von Variablen
Die bisherigen Beispiele zeigten Variablen nur in Prozeduren. Die Variablen wurden am Anfang der Prozedur deklariert und im weiteren Prozedurablauf verwendet. Variablen die so deklariert werden nennt man lokale Variablen. Sie können nur innerhalb der durch Sub und End Sub definierten Prozedur verwendet werden. In anderen Prozeduren sind diese Variablen dann nicht mehr sichtbar und können somit dort auch nicht verwendet werden.
Der Gültigkeitsbereich einer lokal deklarierten Variable beginnt mit ihrer Deklaration und endet mit dem Verlassen der Prozedur. Der Inhalt lokaler Variablen kann nicht über das Verlassen einer Prozedur hinaus verwendet werden. Bei erneutem Eintritt des Programms in die Prozedur wird die Variable wieder neu deklariert und mit einem Standardwert gefüllt.
Den Gültigkeitsbereich einer Variablen können Sie über die Anweisung Static über das Ende einer Prozedur hinaus ausdehnen. Das Schlüsselwort Static wird bei der Deklaration angegeben. Beim Verlassen der Prozedur wird der Inhalt der so deklarierten Variablen nicht gelöscht, sondern aufbewahrt. Bei erneutem Eintritt in die Prozedur steht der vorherige Inhalt der Variablen wieder zur Verfügung. Die Deklaration hat das folgende Format:
Static EineVariable As Double
Eine als Static deklarierte Variable lebt zwar über das Verlassen der Prozedur hinaus, kann aber nur innerhalb der Prozedur verwendet werden. Möchten Sie die Variable innerhalb eines Moduls auch für andere Prozeduren sichtbar machen, dann müssen Sie die Variable am Modulanfang mit dem Schlüsselwort Private deklarieren.
So deklarierte Variable nennt man globale Variablen. Sie werden im Deklarationsbereich eines Moduls angegeben und können dann von allen in diesem Modul definierten Prozeduren und Funktionen verwendet werden. Der Deklarationsbereich eines Moduls befindet sich am Modulanfang.
Die Gültigkeit einer Variablen kann aber auch auf das gesamte Programm – also über alle Programm-Module hinweg – ausgedehnt werden. Dazu deklarieren Sie die Variable am Modulanfang lediglich alsPublic. Sie kann dann auch von anderen Prozeduren in anderen Modulen verwendet werden. Einige Beispiele für die Variablendeklaration.
Private EinText As String
Public NochEinText As String
Die Gültigkeitsbereich von Variablen innerhalb eines Programms ist mit dem von Prozeduren und Funktionen nicht nur vergleichbar, sondern auch absolut identisch.