VBA VarType

Tento článek předvede použití funkce VarType ve VBA.

VarType znamená typ proměnné. Můžeme zadat název proměnné funkci VarType a vrátí celé číslo, které zobrazuje typ dat uložených v této proměnné podle seznamu konstant VBA.

Použití proměnné varianty k nalezení typu VarType

Proměnnou můžeme deklarovat jako proměnnou varianty. To nám umožní uložit do něj jakýkoli typ povolených dat. Tuto proměnnou pak můžeme naplnit a pomocí funkce VarType zjistit, jaký typ dat je v proměnné.

Například:

12345 Dílčí testovací typ ()Dim MyVariable As VariantMyVariable = "Hello World"MsgBox "Typ proměnné je" & VarType (MyVariable)End Sub

Tím se vrátí následující okno se zprávou:

Hodnota 8 je tedy vrácena. To v konstantě aplikace Excel, která definuje typ dat uložených v proměnné.

Tato konstantní hodnota odpovídá následující tabulce:

Konstantní Hodnota Popis
vbEmpty 0 Prázdný (neinicializovaný)
vbNull 1 Null (žádná platná data)
vbInteger 2 Celé číslo
vbLong 3 Dlouhé celé číslo
vbSingle 4 Číslo s plovoucí desetinnou čárkou s jednoduchou přesností
vbDouble 5 Číslo s plovoucí desetinnou čárkou s dvojitou přesností
vbMěna 6 Hodnota měny
vbDate 7 Hodnota data
vbString 8 Tětiva
vbObject 9 Objekt
vbError 10 Hodnota chyby
vbBoolean 11 Booleovská hodnota
vbVariant 12 Varianta (používá se pouze u polí variant)
vbDataObject 13 Objekt pro přístup k datům
vbDecimal 14 Desetinná hodnota
vbByte 17 Bajtová hodnota
vbLongLong 20 LongLong integer (platí pouze pro 64bitové platformy)
vbUserDefinedType 36 Varianty, které obsahují uživatelem definované typy
vbArray 8192 Pole (vždy přidáno do jiné konstanty, když je vráceno touto funkcí)

Můžeme zkusit další příklad:

12345 Dílčí testovací typ ()Dim MyVariable As VariantMyVariable = 32760MsgBox "Typ proměnné je" & VarType (MyVariable)End Sub

Tentokrát okno se zprávou vrátí hodnotu 2, protože typ dat uložených v proměnné je Integer.

Pokud však změníme hodnotu na 32780, pak bude návrat hodnoty 3 - Long Integer, protože datový typ Integer má maximální hodnotu 32767; po kterém je to dlouhé celé číslo.

Pokud bychom kód ještě jednou změnili:

12345 Dílčí testovací typ ()Dim MyVariable As VariantMyVariable = 32760,52MsgBox "Typ proměnné je" & VarType (MyVariable)End Sub

Nyní bychom vrátili hodnotu 5 - datový typ je Double kvůli desetinným místům.

Pokud bychom uvedli hodnotu do proměnné v uvozovkách, pak by opět byla vrácena 8, protože jakákoli hodnota obsažená v uvozovkách je uložena jako hodnota řetězce.

12345 Dílčí testovací typ ()Dim MyVariable As VariantMyVariable = "32760.52"MsgBox "Typ proměnné je" & VarType (MyVariable)End Sub
wave wave wave wave wave