excel-vba Variablen deklarieren


Beispiel

Um Variablen in VBA explizit zu deklarieren, verwenden Sie die Dim Anweisung, gefolgt von Variablenname und Typ. Wenn eine Variable ohne Deklaration verwendet wird oder kein Typ angegeben wird, wird der Typ Variant zugewiesen.

Verwenden Sie die Option Explicit Anweisung in der ersten Zeile eines Moduls, um die Deklaration aller Variablen vor der Verwendung zu erzwingen (siehe immer Verwenden Sie "Option Explicit" ).

Die Option Explicit immer zu verwenden ist sehr zu empfehlen, da Tippfehler / Rechtschreibfehler vermieden werden und sichergestellt wird, dass Variablen / Objekte ihren beabsichtigten Typ beibehalten.

Option Explicit

Sub Example()
    Dim a As Integer
    a = 2
    Debug.Print a
    'Outputs: 2

    Dim b As Long
    b = a + 2
    Debug.Print b
    'Outputs: 4

    Dim c As String
    c = "Hello, world!"
    Debug.Print c
    'Outputs: Hello, world!
End Sub

Mehrere Variablen können in einer einzigen Zeile mit Kommas als Trennzeichen deklariert werden. Jeder Typ muss jedoch einzeln deklariert werden. Andernfalls wird der Variant Typ verwendet.

Dim Str As String, IntOne, IntTwo As Integer, Lng As Long
Debug.Print TypeName(Str)    'Output: String
Debug.Print TypeName(IntOne) 'Output: Variant <--- !!!
Debug.Print TypeName(IntTwo) 'Output: Integer
Debug.Print TypeName(Lng)    'Output: Long

Variablen können auch mit Datentypzeichen-Suffixen ($% &! # @) Deklariert werden, von deren Verwendung wird jedoch zunehmend abgeraten.

 Dim this$  'String
 Dim this%  'Integer
 Dim this&  'Long
 Dim this!  'Single
 Dim this#  'Double
 Dim this@  'Currency

Andere Arten, Variablen zu deklarieren, sind:

  • Static wie: Static CounterVariable as Integer

Wenn Sie die Static-Anweisung anstelle einer Dim-Anweisung verwenden, behält die deklarierte Variable ihren Wert zwischen den Aufrufen bei.

  • Public wie: Public CounterVariable as Integer

Öffentliche Variablen können in beliebigen Prozeduren im Projekt verwendet werden. Wenn eine öffentliche Variable in einem Standardmodul oder einem Klassenmodul deklariert ist, kann sie auch in Projekten verwendet werden, die auf das Projekt verweisen, in dem die öffentliche Variable deklariert ist.

  • Private wie: Private CounterVariable as Integer

Private Variablen können nur von Prozeduren im selben Modul verwendet werden.

Quelle und weitere Informationen:

MSDN-deklarierende Variablen

Zeichen eingeben (Visual Basic)