VBA-Excel Variablen
Variablen deklarieren
Dim lngZ1 As Long, lngZ2 As Long, lngZ3 As Long
Lokale Variablen (Dim)
- Variablen werden immer zu Beginn einer Prozedur deklariert, also nach der Sub-Anweisung. Dabei spricht man von lokalen Variablen. Diese Variablen können nur in dieser Prozedur verwendet werden, in der sie deklariert wurden. Nachdem eine Prozedur durchgelaufen ist, wird diese Variable wieder aus dem Speicher gelöscht.
Dim variable
Dim spalte, zeile spalte = ActiveCell.Column zeile = ActiveCell.Row
oder
Dim spalte Dim zeile spalte = ActiveCell.Column zeile = ActiveCell.Row
Globale Variablen (static)
static variable
- Von globalen Variablen spricht man, wenn diese allgemeingültig sind, also in mehreren Prozeduren verwendet werden sollen. Hierfür muss die Variablendeklaration vor der Sub-Anweisung stattfinden.
- Globale Variablen können gleich für mehrere Prozeduren verwendet werden. Diese werden nach dem Ende einer Prozedur auch nicht gelöscht und behalten ihren aktuellen Wert bei. Es gibt Beispiele, in denen diese Vorgehensweise sinnvoll ist. In den meisten Fällen sollten globale Variablen aber weitestgehend vermieden werden, da sie wertvollen Speicherplatz auf dem Stapelspeicher belegen, was sich negativ auf das Laufzeitverhalten von Prozeduren auswirken kann.
Private Variablen
Alle Variablen innerhalb eines Moduls
Private strName As String Sub Variablen03() strName = Application.ActiveWorkbook.FullName MsgBox strName End Sub
Konstanten
Im Gegensatz zu den Variablen ändern die Konstanten ihre Werte nie und bleiben während der Programmausführung immer gleich. Auch hier wird zwischen lokalen und globalen Konstanten unterschieden. Globale Konstanten werden außerhalb der einzelnen Prozeduren definiert und sind damit für alle Prozeduren im Modul verwendbar. Lokale Konstanten hingegen gelten nur in der Prozedur, in der sie definiert wurden. Wie schon bei den Variablen sollten Sie darauf achten, nicht allzu viele globale Konstanten zu verwenden, da sich dies merklich auf Ihren Speicher auswirkt.
Nachfolgend ein paar typische Deklarationen mit Konstanten:
Const strMappe = "Mappe1.xls" Const DateStart = #1/1/2010# Const strFehlermeldung1 = "Fehler beim Drucken aufgetreten!" Const sngMWST = 1.19
Was kann hier noch verbessert werden? Was für die Variablen gilt, hat auch bei den Konstanten Konsequenzen. In den obigen Beispielen ist noch nicht erklärt worden, welche Datentypen verwendet werden sollen. Zum aktuellen Zeitpunkt wird in allen vier Beispielen der Datentyp Variant eingesetzt. Es geht auch etwas genauer und den Speicher sparender:
Const strMappe as String = "Mappe1.xls" Const DateStart As Date = #1/1/2010# Const strFehlermeldung1 as String = "Fehler beim Drucken!" Const sngMWST as Single = 1.19
Public Variablen
Alle Variablen innerhalb aller Module. Sie könnten z. B. als Konstanten verwendet werden.
Public sngMwst As Single Sub Variablen04() sngMwst = 1.16 MsgBox 100 * sngMwst End Sub
Variablendeklaration Einstellungen
Variablendeklaration erzwingen
- Excel lässt sich so einstellen, dass jede Variable vor deren ersten Verwendung deklariert werden muss. Vorher kann keine einzige Prozedur gestartet werden, sofern es mit Variablen arbeitet, die zuvor nicht deklariert wurden. Um diese wichtige Einstellung vorzunehmen, wechseln Sie in die Entwicklungsumgebung und rufen den Befehl EXTRAS/OPTIONEN auf. Wechseln Sie auf die Registerkarte EDITOR, und aktivieren Sie das Kontrollkästchen VARIABLENDEKLARATION ERFORDERLICH.
- Was bewirkt diese Einstellung aber genau? Immer wenn Sie ein neues Modul einfügen, wird automatisch die Anweisung Option Explicit in die erste Zeile Ihres Modulblattes eingetragen. Diese Anweisung kann selbstverständlich auch manuell erfasst werden. Sie bedeutet nichts anderes, als dass verwendete Variablen im Code vor deren Aufruf deklariert werden müssen. Vorher läuft gar nichts!
Variablendeklation aufrufen
- Die Entwicklungsumgebung von Excel bietet Ihnen eine hilfreiche Möglichkeit zu prüfen, wo verwendete Variabeln definiert sind. Klicken Sie die zu überprüfenden Variable mit der rechten Maustaste an, und wählen Sie im Kontextmenü den Befehl DEFINITION aus. Der Mauszeiger springt danach direkt an die Stelle im Code, an der die Variable definiert wurde.
Datentypen
- Tabelle 1.4: Die Datentypen für die Programmierung (Forts.)
Variablentyp | Wertebereich | Speicherbedarf |
---|---|---|
Byte | Ganze Zahlen zwischen 0 und 255 | 1 Byte |
Boolean | Wahrheitswert, entweder TRUE oder FALSE | 2 Bytes |
Currency | Währungs-Datentyp: Festkommazahlen mit 15 Stellen vor und vier Stellen nach dem Komma | 8 Bytes |
Date | Datums- und Zeit-Datentyp | 8 Bytes |
Decimal | Dezimalzahlen | 14 Bytes |
double | Fließkommazahlen mit einer Genauigkeit von 16 Stellen hinterm Komma | 8 Bytes |
Integer | Ganze Zahlen zwischen –32.768 und +32.767 | 2 Bytes |
Long | Ganze Zahlen im Wertebereich von –2.147.483.648 und
+2.147.483.647||4 Bytes | |
Object | Datentyp gibt einen Verweis auf ein Objekt wieder | 4 Bytes |
Single | Fließkommazahlen mit einer Genauigkeit von acht Stellen
hinterm Komma||4 Bytes | |
String | Der Datentyp für alle Texte | 10 Bytes |
Variant | Standarddatentyp, wird automatisch gewählt, wenn kein anderer Datentyp definiert ist | 16 Bytes |
Systemvariablen
Systemdatum
Dim Datum as date Datum = Date
Systemuhrzeit
Dim Uhrzeit as date Uhrzeit = Time
Nomenklatura
- Dim ist Schlüsselwort
- Erstes Zeichen Variable muss Buchstabe sein
- Groß-/Kleischreibung wird automatisch korrigiert entsprechend der Groß-/Kleinschreibung bei der Dim-Deklaration.
- Eine Variablendeklaration beginnt immer mit der Anweisung Dim, gefolgt von einem Freizeichen und Variablennamen, der frei gewählt werden kann. Danach geben Sie mit dem Schlüsselwort As an, welchen Datentyp die Variable erhalten soll.
Namenskonvention von Gregory Reddick
- bool Boolean
- byte Byte
- Cur Currency
- date Date
- dec Decimal
- dbl Double
- int Integer
- lng Long
- obj Object
- sng Single
- str String
- var Variant