VBA-Beispiele > Allgemein > Variablen

Tipp 210: Variable

Eine Variable ist ein frei wählbarer Text, der zur Laufzeit einer Prozedur seinen Wert verändert. Die Deklaration von Variablen wird in diesen Erläuterungen vernachlässigt.

1. Beispiel:

In diesem Beispiel ist i die Variable. Sie hat den Anfangswert 1. In der nächsten Zeile wird zu diesem Wert i der Wert 1 addiert. Deshalb zeigt die Meldung die Zahl 2.

2. Beispiel:

Hier ist die Variable die Zeichenfolge DasIstEinTest. Zuerst nimmt sie eine leere Zeichenfolge als Wert an (""). In der nächsten Zeile wird das Wort "Max" hinzugefügt (Wert: Max). Dann wird an diesen Wert eine Leerstelle gehangen und in der letzten Zeile das Wort "Mütze" hinzugefügt. So ist während der Laufzeit des Makros aus einer leeren Zeichenfolge der Name "Max Mütze" entstanden, der auch in der Meldung ausgegeben wird.

[Einzellink]

Tipp 211: Datentypen - Deklaration (Beispiele: Excel)

Variablennamen müssen mit einem Zeichen des Alphabets beginnen, innerhalb des Gültigkeitsbereichs eindeutig sein, und dürfen nicht länger als 255 Zeichen lang sein.

Jede Variable beansprucht Speicherplatz, was zur Verlängerung der Laufzeit eines Makros (einer Prozedur) führt. Damit sich dies in Grenzen hält, kann man einer Variablen zuweisen, wieviel Speicherplatz sie in Anspruch nimmt, indem man der Variablen einen Datentyp zuweist.

Sie können u. a. als einer der folgenden Datentypen deklariert werden:

  • Boolean
  • Byte
  • Integer
  • Long
  • String
  • Range

Wird kein Datentyp angegeben, so ist der Datentyp Variant standardmäßig zugewiesen.

Variablen werden gewöhnlich mit der DIM-Anweisung deklariert, deshalb hier auch nur diese Beispiele:

Boolean

Datentypen Boolean werden als 16-Bit-Zahlen (2 Bytes) gespeichert, die nur die Werte True oder False annehmen können.

Bsp:

Die folgende Funktion bekommt aus Prozeduren die Zeilenposition übergeben und prüft, ob die Aktion zulässig ist. Rückgabewerte: TRUE oder FALSE

Die Verwendung in einer Sub könnte dann so aussehen:

Byte

Byte werden als einzelne 8-Bit-Zahlen (1 Byte) ohne Vorzeichen gespeichert und haben einen Wert im Bereich von 0 bis 255.

Integer

Integer werden als 16-Bit-Zahlen (2 Bytes) in einem Bereich von -32.768 bis 32.767 gespeichert.

String

Datentyp String können Buchstaben, Zahlen, Leerzeichen und Satzzeichen enthalten.

Range

Datentyp Range gibt eine Zelle oder einen Zellbereich aus.

[Einzellink]

Tipp 212: Deklaration erzwingen

Visual Basic kann bei einem neuen Variablennamen nicht erkennen, ob es sich um eine neue oder um eine falsch geschriebene bestehende Variable handelt und erzeugt daher eine neue Variable. Probleme mit falsch benannten Variablen lassen sich jedoch vermeiden. Man kann einstellen, dass bei jeder Variablen, die nicht vorher explizit deklariert wurde, eine Fehlermeldung angezeigt wird.

Schreibt man zum Beispiel: Meldung = ... ist die Variable eine andere, als wenn man schreibt Meltung = ... Wenn man nun die Variable wieder einliest, ist der Wert der Variable Meltung leer, wenn der Wert vorher in die Variable Meldung gespeichert wurde.

Um solche Tippfehler zu vermeiden, fügt man am Anfang des Moduls folgende Anweisung an:

Jetzt müssen alle Variablen explizit mit DIM deklariert werden.

Mit einer Moduloption kann man Visual Basic veranlassen, jedem erstellten Modul die Option Explizit hinzuzufügen.

  1. Im Visual Basic Editor Menü Extras > Optionen
  2. Register Editor
  3. Aktivieren des Kontrollkästchen "Variablendeklaration erforderlich"
  4. OK

[Einzellink]

Tipp 213: Verfügbarkeit von Variablen

Wird eine Variable innerhalb einer Prozedur deklariert, kann nur der Code innerhalb dieser Prozedur auf den Wert zugreifen oder ändern. Manchmal soll die Variable in allen Prozeduren oder in allen Prozeduren in einer Arbeitsmappe zur Verfügung stehen. Die Art der Verfügbarkeit einer Variablen wird bei der Deklaration festgelegt. Es gibt drei mögliche Gültigkeitsbereiche für eine Variable:

  • Innerhalb einer Prozedur Dim - Lokal
  • Am Anfang des Modules Dim oder Private - Modulebene
  • Am Anfang des Moduls Public - Öffentlich

Lokal

Die Variable wird nur innerhalb der umgebenen Prozedur erkannt und eignet sich für temporäre Berechnungen. Wird ein Variablen-Name in mehreren Prozeduren benutzt, ist die Variable nur lokal gültig. Gleiche Variablen-Namen in anderen Prozeduren bleiben unverändert vom Wert. Jede Prozedur erkennt nur ihre eigene Variablen.

Modulebene

Variable auf Modulebene haben aus allen Prozeduren innerhalb eines Moduls Gültigkeit. Prozeduren aus anderen Modulen haben keine Gültigkeit.

Öffentlich

Variablen, die mit Public deklariert wurden, haben die umfassendste Gültigkeit. Öffentliche Variablen stehen jeder Prozedur, die sich in einem beliebigen Modul der jeweiligen Arbeitsmappe befinden kann, zur Verfügung. Öffentliche Variablen werden genau wie Variablen auf Modulebene allgemeiner Module vor den Prozedurdefinitionen deklariert.

Tipp

Wer viel mit Variablen, die immer zur Verfügung stehen müssen, arbeitet, sollte sich mit Klassenmodulen beschäftigen. Damit kann man eigene Objekte erstellen, denen man Eigenschaften zuweist, die dann immer zur Verfügung stehen. So könnte ein Autohändler zum Beispiel das Objekt Auto erstellen, für dieses Objekt die Eigenschaft Farbe. Im Code braucht man dann nur noch zu schreiben:

[Einzellink]

 

Das Chemtrailhandbuch von Jörg Lorenz mit einem Vorwort von Jörg Kachelmann

Susanne Hammann-Sayilir - Modedesign  Modeillustration