Kontakt

Nutzen Sie dieses Kontaktformular oder schreiben Sie mir direkt per E-Mail.

Team von Finanzexperten, die auf dem Computerbildschirm ein Dashboard für Geschäftsanalytik (BA) oder Intelligence (BI) diskutieren, in dem die Umsatzdaten und Betriebsdaten sowie die wichtigsten Leistungsindikatoren (KPI) dargestellt werden

Lokale Variablen in VBA – Excel kompakt erklärt

  • Variablen in VBA erstellen
  • Datentypen richtig einstellen
  • Gültigkeit von Variablen verstehen
  • Beispiele zum selbst ausprobieren und lernen
Jan Trummel - Coach für  Excel und  Power BI

Jan Trummel hat mehr als 800 Seminare zu den Themen Power BI, Datenbanken und Excel durchgeführt.

In Variablen können Sie Werte speichern, die Sie im späteren Verlauf Ihres Programms wieder benötigen. Stellen Sie sich Variablen für den Anfang wie das Gedächtnis Ihrer Anwendung vor. In diesem Artikel lernen Sie lokale Variablen, die grauen Zellen einer Prozedur, kennen.

Kurze Erläuterung

Sie erzeugen eine lokale Variable über das Schlüsselwort Dim, gefolgt von einem beliebigen Variablennamen. Danach nennen Sie das Schlüsselwort As und den Datentyp. Dieser bestimmt, was in der Variablen gespeichert werden darf und was nicht. Anschließend können Sie ihr einen Wert zuweisen. Dazu nennen Sie den Namen der Variablen gefolgt von einem Gleichheitszeichen und dem Wert.

Wichtig ist, dass Sie das Konzept der Gültigkeit von lokalen Variablen verstehen: Eine lokale Variablen existiert nur innerhalb einer Prozedur (oder Funktion). Sie können sie daher auch nur in einer Prozedur erzeugen und auch nur dort verwenden. In einer anderen Prozeduren steht Ihnen die Variable nicht zur Verfügung.

Sie verwenden die Variable, indem Sie sie über ihren Namen aufrufen. Sie können die Variable z.B. mit der Anweisung MsgBox in einem Meldungsfenster ausgeben.

Die Syntax zeigt Ihnen beispielhaft, wie Sie eine lokale Variable erstellen, ihr einen Wert zuweisen und sie danach aufrufen:

Option Explicit

Sub Ihre_Prozedur()
  'Erstellung und Wertzuweisung
  Dim Variablenname As Datentyp
  Variablenname = Wert
  
  'Aufruf
  MsgBox Variablenname
End Sub

Beachten Sie die Anweisung Option Explicit oberhalb der Prozedur. Steht dieser Befehl im Modul, müssen Sie beim Erzeugen der Variablen das Schlüsselwort Dim verwenden.

Tipp: Ich empfehle Ihnen, Option Explicit in jedem Modul zu verwenden. Dies gibt Ihnen mehr Kontrolle über Ihre Variablen und trägt dazu bei, Fehler zu vermeiden.


Ausführliche Erklärungen

Ort der Erzeugung

Lokale Variablen können Sie nur innerhalb einer Prozedur (oder Funktion) erstellen, müssen ihr dort einen Wert zuweisen und können sie auch nur dort aufrufen.

Name der Variablen

Sie können den Namen Ihrer Variablen frei wählen. Es gibt nur einige wenige Regeln:

  • Das erste Zeichen muss ein Buchstabe sein.
  • Es dürfen nur Buchstaben, Zahlen und bestimmte Sonderzeichen benutzt werden.
  • Innerhalb einer Prozedur (oder Funktion) darf es keine zwei Variablen mit dem gleichen Namen geben.

Tipp: Wählen Sie einen Namen, der Aufschluss darüber gibt, welche Daten Sie in der Variablen speichern (z.B. Zahl für eine Zahlenvariable oder Betrag für eine Variable, in der Geldbeträge gespeichert werden sollen).

Datentyp

Sie können festlegen, was für Daten in der Variablen gespeichert werden dürfen, sprich Texte, Zahlen, Datumsangaben usw. Die Anweisung Option Explicit macht die Angabe eines Datentyps erforderlich.

Die folgende Tabelle stellt Ihnen die Datentypen in VBA vor:

Datentyp Bedeutung Speicherbedarf
BooleanJa/Nein-Werte (True oder False)2 Byte
ByteGanze Zahl von 0 bis 2551 Byte
IntegerGanze Zahl von -32.768 bis +32.7672 Byte
LongGanze Zahl von -2.147.483.648 bis +2.147.483.647 4 Byte
LongLongGanze Zahl von ca. -9 Trillionen bis +9 Trillionen8 Byte
CurrencyGanze Zahl von ca. -9 Billionen bis +9 Billionen und 4 Nachkommastellen8 Byte
SingleGleitkommazahl mit einfacher Genauigkeit4 Byte
Double Gleitkommazahl mit doppelter Genauigkeit 8 Byte

Date
Datumsangaben mit Uhrzeit vom 01.01.100 bis 31.12.99998 Byte
StringTexte10 Byte (+)
ObjectVerweis auf ein Objekt4 Byte
VariantKein definierter Datentyp, kann alles aufnehmenunterschiedlich
Tabelle mit Datentypen in VBA

Gültigkeit

Lokale Variablen existieren nur innerhalb der Prozedur (oder Funktion), in welcher Sie sie erzeugt haben. In anderen Prozeduren können Sie die Variable nicht verwenden.

Hinweis: Technisch gesehen handelt es sich bei einer Variablen um eine Stelle im Arbeitsspeicher Ihres Computers. Sobald Ihr VBA-Programm die Prozedur ausgeführt hat, werden alle Variablen geleert, d.h. der dafür reservierte Bereich im Arbeitsspeicher wird wieder frei gemacht.


Beispiele

Hier sehen Sie, wie Sie Variablen verschiedenen Typs erstellen und ihnen einen Inhalt zuweisen können:

Sub Variablen()
  'Ganze Zahl
  Dim Zahl As Integer
  Zahl = 100
  
  'Währung
  Dim Betrag As Currency
  Betrag = 9.99
  
  'Gleitkommazahl
  Dim Zahl2 As Single
  Zahl2 = 5.8
  
  'Datum
  Dim Datum As Date
  Datum = "24.12.2020"
  
  'Zeit
  Dim Zeit As Date
  Zeit = "12:00"
  
  'Datum mit Uhrzeit
  Dim DatumZeit As Date
  DatumZeit = "24.12.2020 12:00"
  
  'Texte
  Dim Text As String
  Text = "Hallo Welt"
End Sub

Weiterführende Informationen

Wie gesagt, können Sie eine lokale Variable nicht außerhalb der Prozedur aufrufen, in der Sie sie erzeugt haben. Sie können die Variable aber an eine andere Prozedur oder Funktion übergeben und so den in ihr gespeicherten Wert dort weiterverwenden.
Hier lesen Sie mehr zum Übergeben von Variablen.

Über die Anweisung Option Explicit, welche Sie am Beginn des Moduls notieren müssen, machen Sie die Angabe eine Datentyps für die Variable erforderlich.
Warum das sinnvoll sein kann, lesen Sie in diesem Artikel: Option Explicit.

Neben lokalen Variablen gibt es auch globale, modulweite und statische Variablen. In den verlinkten Artikeln erfahren Sie mehr dazu.


Jan Trummel am Flipchart und erklärt Seminarteilnehmern etwas in Excel.
Jan Trummel im Seminar

Jetzt VBA lernen ohne Programmierkenntnisse!

Sie wollen die VBA-Programmierung in Excel lernen und sicher beherrschen? Dann empfehle ich Ihnen mein Seminar Excel VBA-Programmierung – Grundkurs. Der Einstieg in VBA mit Excel ist ohne Vorkenntnisse in Programmiersprachen möglich!