Variant

Aus VBA-wiki
Version vom 23. November 2017, 16:22 Uhr von Pwania (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „Eine als Variant deklarierte Variable kann einen beliebigen Wert entgegennehmen, inklusive einer Objektreferenz. Wenn Sie bei der Deklaration einer Variablen k…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Eine als Variant deklarierte Variable kann einen beliebigen Wert entgegennehmen, inklusive einer Objektreferenz. Wenn Sie bei der Deklaration einer Variablen keinen Datentyp angeben, verwendet VBA automatisch den Datentyp Variant: Dim strString ' Wird automatisch als Variant deklariert

Vorteile des Variant

Wenn Sie bei einem Übergabeparameter wahlweise eine Zahl oder eine Zeichenkette erwarten (wie etwa die 'Item'-Funktion einer Auflistung), bietet sich der Datentyp 'Variant' an. Bei der Übergabe des Indexes (also einer Zahl) oder des Namens (also einer Zeichenkette) weist VBA der Variablen automatisch den passenden Datentyp zu: Dim varTest As Variant Debug.Print VarType(varTest) ' 0 vbEmpty varTest = "Hallo!" Debug.Print VarType(varTest) ' 8 vbString varTest = 12 Debug.Print VarType(varTest) ' 2 vbInteger

Nachteile des Variant

Da kein fester Datentyp vorgegeben ist, erfolgt keine Prüfung, ob der zugewiesene Wert dem erwarteten Datentyp entspricht bzw. wird nicht bei der Zuweisung schon eine Umwandlung in den passenden Datentyp versucht. Diese erfolgt gegebenenfalls erst, wenn die Werte weiter verarbeitet wird: Dim varTest As Variant varTest = 12 Debug.Print varTest / 4 ' 3 varTest = "Max" Debug.Print varTest / 4 ' Fehler! Im Vergleich (der Fehler tritt schon bei der Zuweisung auf): Dim lngTest As Long lngTest = 12 Debug.Print lngTest / 4 ' 3 lngTest = "Max" ' Fehler! Debug.Print lngTest / 4