Tento článok predvedie použitie funkcie VarType vo VBA.
VarType znamená variabilný typ. Funkcii VarType môžeme dodať názov premennej a vráti celé číslo, ktoré zobrazuje typ údajov uložených v danej premennej podľa zoznamu konštánt VBA.
Použitie premennej variantu na nájdenie typu VarType
Premennú môžeme deklarovať ako premennú Variant. To nám umožní uložiť do nich akýkoľvek typ povolených údajov. Potom môžeme túto premennú naplniť a pomocou funkcie VarType zistiť, aký typ údajov sa v premennej nachádza.
Napríklad:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "Hello World"MsgBox „Typ premennej je“ & VarType (MyVariable)Koniec pod |
Tým sa vráti nasledujúce okno so správou:
Vráti sa teda hodnota 8. Toto je v konštante programu Excel, ktorá definuje typ údajov uložených v premennej.
Táto konštantná hodnota zodpovedá nasledujúcej tabuľke:
Konštantný | Hodnota | Popis |
---|---|---|
vbEmpty | 0 | Prázdne (neinicializované) |
vbNull | 1 | Null (žiadne platné údaje) |
vbInteger | 2 | Celé číslo |
vbLong | 3 | Dlhé celé číslo |
vbSingle | 4 | Číslo s pohyblivou rádovou čiarkou s jednoduchou presnosťou |
vbDvojnásobok | 5 | Číslo s dvojitou presnosťou s pohyblivou rádovou čiarkou |
vbMena | 6 | Hodnota meny |
vbDate | 7 | Hodnota dátumu |
vbString | 8 | Reťazec |
vbObject | 9 | Objekt |
vbError | 10 | Hodnota chyby |
vbBoolean | 11 | Booleovská hodnota |
vbVariant | 12 | Varianta (používa sa iba s poliami variantov) |
vbDataObject | 13 | Objekt prístupu k údajom |
vbDecimal | 14 | Desatinná hodnota |
vbByte | 17 | Bajtová hodnota |
vbLongLong | 20 | LongLong integer (platí iba pre 64-bitové platformy) |
vbUserDefinedType | 36 | Varianty, ktoré obsahujú typy definované používateľom |
vbArray | 8192 | Pole (vždy pridané do inej konštanty, keď je vrátené touto funkciou) |
Môžeme skúsiť ďalší príklad:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760MsgBox „Typ premennej je“ & VarType (MyVariable)Koniec pod |
Okno so správou tentokrát vráti hodnotu 2, pretože typ údajov uložených v premennej je Integer.
Ak však zmeníme hodnotu na 32780, potom bude vrátená hodnota 3 - dlhé celé číslo, pretože typ údajov typu Integer má maximálnu hodnotu 32767; potom je to dlhé celé číslo.
Ak by sme chceli kód znova zmeniť:
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = 32760,52MsgBox „Typ premennej je“ & VarType (MyVariable)Koniec pod |
Teraz by sa vrátila hodnota 5 - typ údajov je kvôli desatinným miestam dvojnásobný.
Ak by sme vložili hodnotu do premennej do úvodzoviek, potom by sa opäť vrátila 8, pretože akákoľvek hodnota obsiahnutá v úvodzovkách je uložená ako hodnota reťazca.
12345 | Sub TestVarType ()Dim MyVariable As VariantMyVariable = "32760,52"MsgBox „Typ premennej je“ & VarType (MyVariable)Koniec pod |