Excel VBA VarType függvény
A VBA VARTYPE jelentése „Változó típus”. Ez a függvény segít azonosítani az adott változóhoz rendelt adattípust, vagy egyszerű szóval azt mondhatjuk, hogy megtalálja, hogy milyen értéket tárolnak vagy rendelnek a változóhoz.
Szintaxis

VarName: Csak meg kell adnunk a változó nevét, hogy megtaláljuk a mellékelt változó nevében tárolt adatokat.
Tehát a változó nevét szintaxisként vagy argumentumként veszi fel, és a kimenetben visszaadja a változóhoz rendelt adattípust vagy a változóban tárolt adatok típusát.
Tehát, ha valaha is kíváncsi volt, hogyan lehet megtalálni a változó adattípusát vagy a változóhoz rendelt adattípust, akkor itt van egy „VarType” VBA függvény.

Példák
1. példa
A VBA-ban a kód írása közben általában deklarálunk változókat és adattípust rendelünk hozzájuk. Nézze meg például az alábbi VBA kódot.
Kód:
Sub VarType_Example () Dim MyVar As String MyVar = "Hello" End Sub

A fenti példában a változót „String” -nek nyilvánítottuk, és ehhez a stringhez az értéket „Hello” -nak rendeltük.
Ez egyenes eset, de a változók deklarálása is lehetséges anélkül, hogy hozzárendelnénk hozzájuk a változókat, így ilyen esetekben a VarType függvény segít nekünk.
Kód:
Sub VarType_Example () Dim MyVar MyVar = "Hello" End Sub

A fenti kódban nem rendeltünk adattípust, hanem rögtön „Hello” értéket rendeltünk hozzá, így a VarType függvény használatával megtalálhatjuk a változó adattípusát.
Nyissa meg az MSGBOX-ot VBA kódolással a fenti kódban.

Ezután nyissa meg a VarType függvényt.

Most írja be a változó nevét a VARTYPE függvény argumentumaként.
Kód:
Sub VarType_Example () Dim MyVar MyVar = "Hello" MsgBox VarType (MyVar) End Sub

Most futtassa a kódot, és nézze meg, mit kapunk az üzenet mezőben.

Az eredményt 8-ként kaptuk, mert a VBA rendelkezik bizonyos kódokkal a változó adattípusok mindegyik típusához, ezért az alábbiakban a részletes lista található.
Érték | Állandó | Leírás | ||
0 | vbEmpty | A változó még nincs inicializálva | ||
1 | vbNull | Érvénytelen adatok vannak hozzárendelve | ||
2 | vbInteger | A változó értéke „Egész” adattípus | ||
3 | vbHosszú | A változó értéke „Hosszú” adattípus | ||
4 | vbEgyetlen | A változó értéke „Single” típusú | ||
5. | vbDupla | A változó értéke „Double” adattípus | ||
6. | vbPénznem | A változó értéke „Pénznem” adattípus | ||
7 | vbDate | A változó értéke „Dátum” adattípus | ||
8. | vbString | A változó értéke „String” adattípus | ||
9. | vbObject | A változó értéke „Object” adattípus | ||
10. | vbError | A változó értéke Error Value | ||
11. | vbBoolean | A változó értéke „logikai” adattípus | ||
12. | vbVariant | A változó értéke „Variant” adattípus (csak variáns tömbökkel használható) | ||
13. | vbDataObject | A változó értéke az adatelérési objektum | ||
14 | vbDecimal | A változó értéke „Decimális” adattípus | ||
17. | vbByte | A változó értéke „Byte” adattípus | ||
20 | vbLongLong | A változó értéke „LONG LONG” típusú (csak 64 bites platformokon érvényes) | ||
36 | vbUserDefinedType | A változó értéke „Felhasználó által definiált” adattípus | ||
8192 | vbArray | A változó értéke tömb. |
Ok, most a kódunk újrhangolta a változó adattípust 8-ra, vagyis a „MyVar” változó neve tartalmazza a „String” adattípust.
2. példa
Most nézze meg az alábbi kódot.
Kód:
Sub VarType_Example2 () Dim MyVar Set MyVar = ThisWorkbook MsgBox VarType (MyVar) End Sub

Futtassuk ezt a kódot, és nézzük meg, mi az eredmény.

Az eredmény 9, azaz a változó tartalmazta az „Object” adattípust. Igen, ez azért helyes, mert a „MyVar” változóhoz beállítottuk a „Ez a munkafüzet” munkafüzet hivatkozást.
3. példa
Most nézze meg az alábbi kódot.
Kód:
Sub VarType_Example3 () Dim MyVar MyVar = 32500 MsgBox VarType (MyVar) End Sub

Ez 2-ként adja vissza az eredményt.

Mivel a változóhoz rendelt 32500 szám „Egész” érték.
Most megváltoztatom az értéket 40000-ra, és megnézem az eredményt.
Kód:
Sub VarType_Example4 () Dim MyVar MyVar = 40000 MsgBox VarType (MyVar) End Sub

Ez 3-as eredményt ad.

Mivel az Egész szám 32767-re végződik, ezért minden felette lévő értéket VBA LONG adattípusként kezelünk.
Most dupla idézőjelek közé teszem a számot.
Kód:
Sub VarType_Example5 () Dim MyVar MyVar = "40000" MsgBox VarType (MyVar) End Sub

Futtassa a kódot, és nézze meg az eredményt.

Az eredményt 8, azaz String adattípusként kaptuk.
Ennek az az oka, hogy a zárójelben megadott adatokat String változóként kezeljük.
Dolgok, amikre emlékezni kell
- A VARTYPE jelentése „Változó típus”.
- Az adattípust egyedi számok képviselik, ezért a táblázatból megtudhatja, melyik szám melyik változó adattípust képviseli.