Dim-AnweisungDim statement

Deklariert Variablen und weist Speicherplatz zu.Declares variables and allocates storage space.

SyntaxSyntax

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


Die Syntax der Dim-Anweisung besteht aus folgenden Teilen:The Dim statement syntax has these parts:

TeilPart BeschreibungDescription
WithEventsWithEvents Optional.Optional. Schlüsselwort, das angibt, dass varname eine Objektvariable ist, die zur Reaktion auf von einem ActiveX-Objekt ausgelöste Ereignisse ist.Keyword that specifies that varname is an object variable used to respond to events triggered by an ActiveX object. WithEvents ist nur in Klassenmodulen gültig.WithEvents is valid only in class modules. Sie können beliebig viele einzelne Variablen mithilfe von WithEvents deklarieren, aber keine Arrays mit WithEvents erstellen.You can declare as many individual variables as you like by using WithEvents, but you can't create arrays with WithEvents. Sie können New nicht mit WithEvents verwenden.You can't use New with WithEvents.
varnamevarname Erforderlich.Required. Name der Variablen; folgt standardmäßigen Konventionen für die Variablenbenennung.Name of the variable; follows standard variable naming conventions.
subscriptssubscripts Optional.Optional. Dimensionen einer Arrayvariablen; es können bis zu 60 Dimensionen deklariert werden.Dimensions of an array variable; up to 60 multiple dimensions may be declared. Das __ Argument Subscripts verwendet die folgende Syntax: [ Lower to ] Upper [, [ Lower to ] Upper ] ....The subscripts argument uses the following 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.When not explicitly stated in lower, the lower bound of an array is controlled by the Option Base statement. Die Untergrenze ist Null, wenn keine Option Base-Anweisung vorhanden ist.The lower bound is zero if no Option Base statement is present.
NewNew Optional.Optional. Schlüsselwort, das die implizite Erstellung eines Objekts ermöglicht.Keyword that enables implicit creation of an object. 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.If you use New when declaring the object variable, a new instance of the object is created on first reference to it, so you don't have to use the Set statement to assign the object reference.

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.The New keyword can't be used to declare variables of any intrinsic data type or to declare instances of dependent objects, and it can't be used with WithEvents.
typetype Optional.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.Data type of the variable; may be Byte, Boolean, Integer, Long, Currency, Single, Double, Decimal (not currently supported), Date, String (for variable-length strings), String length (for fixed-length strings), Object, Variant, a user-defined type, or an object type. Verwenden Sie eine separate As Type -Klausel für jede deklarierte Variable.Use a separate As type clause for each variable you declare.

HinweiseRemarks

Mit der Dim-Anweisung auf der Modulebene deklarierte Variablen sind für alle Prozeduren im Modul verfügbar.Variables declared with Dim at the module level are available to all procedures within the module. Auf der Prozedurebene sind Variablen nur innerhalb der Prozedur verfügbar.At the procedure level, variables are available only within the procedure.

Verwenden Sie die Dim-Anweisung auf Modul- oder Prozedurebene, um den Datentyp einer Variablen zu deklarieren.Use the Dim statement at the module or procedure level to declare the data type of a variable. Beispielsweise wird mit der folgenden Anweisung eine Variable als Integer deklariert.For example, the following statement declares a variable as an Integer.

Dim NumberOfEmployees As Integer 

Verwenden Sie eine Dim-Anweisung auch, um den Objekttyp einer Variablen zu deklarieren.Also use a Dim statement to declare the object type of a variable. Mit dem folgenden Code wird eine Variable für eine neue Instanz eines Arbeitsblatts deklariert.The following declares a variable for a new instance of a worksheet.

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.If the New keyword is not used when declaring an object variable, the variable that refers to the object must be assigned an existing object by using the Set statement before it can be used. Bis dies geschieht, weist die Objektvariable den besonderen Wert Nothing auf, der angibt, dass sie auf keine Instanz eines Objekts verweist.Until it is assigned an object, the declared object variable has the special value Nothing, which indicates that it doesn't refer to any particular instance of an object.

Sie können die Dim-Anweisung auch mit leeren Klammern verwenden, um ein dynamisches Array zu deklarieren.You can also use the Dim statement with empty parentheses to declare a dynamic array. 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.After declaring a dynamic array, use the ReDim statement within a procedure to define the number of dimensions and elements in the array. 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.If you try to redeclare a dimension for an array variable whose size was explicitly specified in a Private, Public, or Dim statement, an error occurs.

Wenn Sie keinen Datentyp oder Objekttyp angeben und keine Def_type_-Anweisung im Modul vorhanden ist, ist die Variable standardmäßig vom Typ Variant.If you don't specify a data type or object type, and there is no Def_type_ statement in the module, the variable is Variant by default. 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.When variables are initialized, a numeric variable is initialized to 0, a variable-length string is initialized to a zero-length string (""), and a fixed-length string is filled with zeros. Variant -Variablen werden auf Empty initialisiert.Variant variables are initialized to Empty. Jedes Element einer Variable vom benutzerdefinierten Typ wird so initialisiert, als wäre es eine separate Variable.Each element of a user-defined type variable is initialized as if it were a separate variable.

Hinweis

Wenn Sie die Dim-Anweisung in einer Prozedur verwenden, setzen Sie im Allgemeinen die Dim-Anweisung an den Anfang der Prozedur.When you use the Dim statement in a procedure, you generally put the Dim statement at the beginning of the procedure.

BeispielExample

Dieses Beispiel zeigt die Dim-Anweisung zum Deklarieren von Variablen.This example shows the Dim statement used to declare variables. Es zeigt außerdem die Dim-Anweisung zum Deklarieren von Arrays.It also shows the Dim statement used to declare arrays. Die Standarduntergrenze für Arraygrößen ist 0. Sie kann auf Modulebene mit der Option Base-Anweisung überschrieben werden.The default lower bound for array subscripts is 0 and can be overridden at the module level by using the Option Base statement.

' 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 auchSee also

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.