Besonderheiten beim Variant-Datentyp

<< Click to Display Table of Contents >>

Besonderheiten beim Variant-Datentyp

Bei SoftMaker Basic muss eine Variable nicht unbedingt deklariert zu werden, bevor sie zum ersten Mal verwendet wird (Ausnahme: wenn Option Explicit gesetzt wurde). SoftMaker Basic deklariert sie dann bei ihrem ersten Auftreten automatisch – und zwar als Datentyp Variant.

Der Datentyp Variant kann benutzt werden, um wahlweise Zahlen, Zeichenketten oder Datum/Uhrzeit-Werte zu speichern. Typumwandlungen geschehen dabei automatisch.

Sie können Variablen auch explizit als Variant deklarieren, zum Beispiel mit Dim x As Variant oder einfach nur Dim x ohne Typangabe.

Ein Beispiel für die Verwendung von Variant-Variablen:

Sub Main

 Dim x           ' Variant-Variable

 x = 10

 x = x + 8

 x = "F" & x

 Print x         ' Ergebnis: "F18"

End Sub

Wenn Zahlen in einer Variant-Variablen gespeichert werden, wird automatisch der kompakteste Datentyp gewählt, mit dem die Zahl dargestellt werden kann (in der Reihenfolge Integer, Long, Single, Double).

Der von einer Variant-Variablen beherbergte Datentyp kann jederzeit wechseln. Um den aktuellen Datentyp zu ermitteln, können Sie die Funktion VarType verwenden. Mit der Funktion IsNumeric können Sie prüfen, ob die Variable momentan einen numerischen Wert enthält.

Variant-Variablen können zwei spezielle Werte annehmen, die es bei anderen Datentypen nicht gibt:

Empty ist der Wert einer Variant-Variablen, die noch nicht initialisiert wurde. Er kann mit der Funktion IsEmpty abgefragt werden. Bei numerischen Operationen wird Empty als 0, bei Zeichenkettenoperationen als eine leere Zeichenkette interpretiert.

Der Wert Null dient zur Darstellung der Tatsache, dass kein (gültiger) Wert verfügbar ist. Er kann mit der Funktion IsNull abgefragt werden. Jede Operation mit einem Null-Wert ergibt Null.

Verkettung von Variant-Variablen

Wenn eine Zeichenkette und eine Zahl mit dem Operator + verkettet werden, resultiert daraus eine Zeichenkette.

Verketten Sie zwei Zahlen, ist das Ergebnis hingegen eine Zahl. Möchten Sie stattdessen eine Zeichenkette erhalten, ist statt + der Operator & zu verwenden, der – unabhängig vom Datentyp der Argumente – stets eine Zeichenkette liefert.