VBA-Excel Variablen

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

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

Web-Links