Dim-Anweisung

Deklariert Variablen und weist Speicherplatz zu.

Syntax

Dim [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ] [ , [ WithEvents ] varname [ ( [ subscripts ] ) ] [ As [ New ] type ]] . . .


Die Syntax der Dim-Anweisung besteht aus folgenden Teilen:

Teil Beschreibung
WithEvents Optional. Schlüsselwort, das angibt, dass varname eine Objektvariable ist, die zur Reaktion auf von einem ActiveX-Objekt ausgelöste Ereignisse ist. WithEvents ist nur in Klassenmodulen gültig. Sie können beliebig viele einzelne Variablen mithilfe von WithEvents deklarieren, aber keine Arrays mit WithEvents erstellen. Sie können New nicht mit WithEvents verwenden.
varname Erforderlich. Name der Variablen; folgt standardmäßigen Konventionen für die Variablenbenennung.
subscripts Optional. Dimensionen einer Arrayvariablen; es können bis zu 60 Dimensionen deklariert werden. Das Argument "subscripts" verwendet die folgende Syntax: [ lower To ] upper [ , [ lower To ] upper ] . . . .

Wenn sie nicht explizit in lower angegeben ist, wird die Untergrenze eines Arrays durch die Option Base-Anweisung gesteuert. Die Untergrenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.
New Optional. Schlüsselwort, das die implizite Erstellung eines Objekts ermöglicht. Wenn Sie New beim Deklarieren der Objektvariablen verwenden, wird beim ersten Verweis darauf eine neue Instanz des Objekts erstellt. Somit müssen Sie nicht die Set-Anweisung verwenden, um den Objektverweis zuzuweisen.

Das Schlüsselwort New kann nicht zum Deklarieren von Variablen eines systeminternen Datentyps, nicht zum Deklarieren von Instanzen abhängiger Objekte und nicht mit WithEvents verwendet werden.
type Optional. Der Datentyp der Variablen. Kann Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (zurzeit nicht unterstützt), Date, String (für Zeichenfolgen mit variabler Länge), String length (für Zeichenfolgen mit fester Länge), Object, Variant, ein benutzerdefinierter Typ oder ein Objekttyp sein. Verwenden Sie für jede deklarieren Variable eine separate As-Typklausel.

Hinweise

Mit der Dim-Anweisung auf der Modulebene deklarierte Variablen sind für alle Prozeduren im Modul verfügbar. Auf der Prozedurebene sind Variablen nur innerhalb der Prozedur verfügbar.

Verwenden Sie die Dim-Anweisung auf Modul- oder Prozedurebene, um den Datentyp einer Variablen zu deklarieren. Beispielsweise wird mit der folgenden Anweisung eine Variable als Integer deklariert.

Dim NumberOfEmployees As Integer 

Verwenden Sie eine Dim-Anweisung auch, um den Objekttyp einer Variablen zu deklarieren. Mit dem folgenden Code wird eine Variable für eine neue Instanz eines Arbeitsblatts deklariert.

Dim X As New Worksheet 

Wenn das Schlüsselwort New beim Deklarieren einer Objektvariablen nicht verwendet wird, muss der Variablen, die auf das Objekt verweist, mit der Set-Anweisung ein vorhandenes Objekt zugewiesen werden, bevor sie verwendet werden kann. Bis dies geschieht, weist die Objektvariable den besonderen Wert Nothing auf, der angibt, dass sie auf keine Instanz eines Objekts verweist.

Sie können die Dim-Anweisung auch mit leeren Klammern verwenden, um ein dynamisches Array zu deklarieren. Verwenden Sie nach dem Deklarieren eines dynamischen Arrays die ReDim-Anweisung in einer Prozedur, um die Anzahl der Dimensionen und Elemente in dem Array zu definieren. Wenn Sie versuchen, eine Dimension für eine Array-Variable, deren Größe in einer Private, Public oder Dim-Anweisung explizit angegeben wurde, neu zu deklarieren, tritt ein Fehler auf.

Wenn Sie keinen Datentyp oder Objekttyp angeben und keine Def_type_-Anweisung im Modul vorhanden ist, ist die Variable standardmäßig vom Typ Variant. Beim Initialisieren von Variablen wird eine numerische Variable als 0 initialisiert, eine Zeichenfolge mit variabler Länge wird als leere Zeichenfolge ("") initialisiert, und eine Zeichenfolge mit fester Länge wird mit Nullen ausgefüllt. Variant -Variablen werden auf Empty initialisiert. Jedes Element einer Variable vom benutzerdefinierten Typ wird so initialisiert, als wäre es eine separate Variable.

Hinweis

Wenn Sie die Dim-Anweisung in einer Prozedur verwenden, setzen Sie im Allgemeinen die Dim-Anweisung an den Anfang der Prozedur.

Beispiel

Dieses Beispiel zeigt die Dim-Anweisung zum Deklarieren von Variablen. Es zeigt außerdem die Dim-Anweisung zum Deklarieren von Arrays. Die Standarduntergrenze für Arraygrößen ist 0. Sie kann auf Modulebene mit der Option Base-Anweisung überschrieben werden.

' AnyValue and MyValue are declared as Variant by default with values 
' set to Empty. 
Dim AnyValue, MyValue 
 
' Explicitly declare a variable of type Integer. 
Dim Number As Integer 
 
' Multiple declarations on a single line. AnotherVar is of type Variant 
' because its type is omitted. 
Dim AnotherVar, Choice As Boolean, BirthDate As Date 
 
' DayArray is an array of Variants with 51 elements indexed, from 
' 0 thru 50, assuming Option Base is set to 0 (default) for 
' the current module. 
Dim DayArray(50) 
 
' Matrix is a two-dimensional array of integers. 
Dim Matrix(3, 4)As Integer 
 
' MyMatrix is a three-dimensional array of doubles with explicit 
' bounds. 
Dim MyMatrix(1 To 5, 4 To 9, 3 To 5)As Double 
 
' BirthDay is an array of dates with indexes from 1 to 10. 
Dim BirthDay(1 To 10)As Date 
 
' MyArray is a dynamic array of variants. 
Dim MyArray()

Siehe auch

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.