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 |