VBA-Programmierung in Microsoft Excel

Tutorial: Excel-Beispiele

VBA-Begriff: Dim-Anweisung

Deklariert Variablen und reserviert Speicherplatz dafür.

Syntax

Dim [WithEvents] VarName[([Indizes])] [As [New] Typ] [, [WithEvents] VarName[([Indizes])] [As [New] Typ]] . . .

Die Syntax der Dim-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
WithEvents Optional. Schlüsselwort, das angibt, daß VarName eine Objektvariable zur Reaktion auf Ereignisse ist, die von einem ActiveX-Objekt ausgelöst wurden. Nur in Klassenmodulen gültig. Sie können mit WithEvents beliebig viele Variablen deklarieren, jedoch keine Datenfelder erstellen. Sie können New nicht zusammen mit WithEvents verwenden.
VarName Erforderlich. Name der Variablen entsprechend den Standardkonventionen für Namen von Variablen.
Indizes Optional. Dimensionen einer Datenfeldvariablen. Bis zu 60 Dimensionen sind zulässig. Das Argument Indizes hat die folgende Syntax:
  [Untergrenze To] Obergrenze [, [Untergrenze To] Obergrenze] . . .
  Wenn nicht explizit in Untergrenze angegeben, wird die untere Grenze eines Datenfeldes durch die Option Base-Anweisung festgelegt. Die untere Grenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.
New Optional. Dieses Schlüsselwort ermöglicht das implizite Erstellen eines Objekts. Wenn Sie New bei der Deklaration der Objektvariablen verwenden, wird eine neue Instanz des Objekts aufgrund des ersten Verweis darauf erstellt, so daß Sie die Set-Anweisung für die Zuweisung des Objektverweises nicht verwenden müssen. Das Schlüsselwort New kann nicht zur Deklaration von Variablen eines integrierten Datentyps oder zur Deklaration von Instanzen abhängiger Objekte verwendet werden. Es kann außerdem nicht mit WithEvents verwendet werden.
Typ Optional. Datentyp der Variablen. Zulässige Typen sind: Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zur Zeit nicht unterstützt), Date, String (für Zeichenfolgen variabler Länge), String * Länge (für Zeichenfolgen fester Länge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp. Verwenden Sie für jede deklarierte Variable einen separaten As Typ-Abschnitt.

Bemerkungen

Variablen, die mit Dim auf Modulebene deklariert wurden, stehen allen Prozeduren innerhalb des Moduls zur Verfügung. Auf Prozedurebene deklarierte Variablen stehen nur innerhalb der umgebenden Prozedur zur Verfügung.

Verwenden Sie die Dim-Anweisung auf Modul- oder Prozedurebene, um den Datentyp einer Variablen zu deklarieren. Die folgende Anweisung deklariert beispielsweise eine Variable als Integer.

Dim AnzahlAngestellten As Integer

Verwenden Sie die Dim-Anweisung auch, um den Objekttyp einer Variablen zu deklarieren. Die folgende Anweisung deklariert eine Variable für eine neue Instanz einer Tabelle.

Dim X As New Worksheet

Wenn das Schlüsselwort New beim Deklarieren einer Objektvariable nicht verwendet wird, muß die Variable, die auf ein Objekt verweist, mit der Set-Anweisung einem existierenden Objekt zugewiesen werden, bevor sie verwendet werden kann. Solange ein Objekt zugewiesen ist, hat die deklarierte Objektvariable den Spezialwert Nothing, d.h., sie verweist auf keine bestimmte Instanz eines Objekts.

Sie können die Dim-Anweisung auch in Kombination mit einem leeren Klammernpaar zur Deklaration eines dynamischen Datenfelds verwenden. Nach einer solchen Deklaration können Sie mit der ReDim-Anweisung innerhalb einer Prozedur die Anzahl der Dimensionen und Elemente in dem Datenfeld definieren. Wenn Sie eine Dimension für eine Datenfeldvariable mit einer weiteren Deklaration ändern möchten, die Größe des Datenfeldes aber bereits explizit mit einer Private-, Public- oder Dim-Anweisung festgelegt wurde, tritt ein Fehler auf.

Wenn Sie keinen Daten- oder Objekttyp angeben und auch keine DefTyp-Anweisung im jeweiligen Modul verwendet wird, erhält die Variable durch die Voreinstellung den Datentyp Variant.

Bei der Initialisierung wird numerischen Variablen der Wert 0 und Zeichenfolgen variabler Länge eine Null-Zeichenfolge ("") zugewiesen; Zeichenfolgen fester Länge werden mit Nullen aufgefüllt und Variablen vom Typ Variant werden als Empty initialisiert. Alle Elemente einer Variablen eines benutzerdefinierten Typs werden genauso initialisiert wie eigenständige Variablen des entsprechenden Datentyps.

Anmerkung   Wenn Sie die Dim-Anweisung in einer Prozedur verwenden, wird in der Regel die Dim-Anweisung an den Anfang der Prozedur gesetzt.