Dit artikel demonstreert het gebruik van de VarType-functie in VBA.
VarType betekent Variabel Type. We kunnen de naam van de variabele aan de VarType-functie geven, en het zal een geheel getal retourneren dat het type gegevens weergeeft dat in die variabele is opgeslagen volgens een lijst met VBA-constanten.
Een variantvariabele gebruiken om het VarType te vinden
We kunnen een variabele declareren als een Variantvariabele. Hierdoor kunnen we elk type toegestane gegevens erin opslaan. We kunnen deze variabele vervolgens vullen en de functie VarType gebruiken om te zien welk type gegevens zich in de variabele bevindt.
Bijvoorbeeld:
12345 | SubtestVarType()Dim MyVariable als variantMijnVariabele = "Hallo wereld"MsgBox "Het type variabele is " & VarType(MyVariable)Einde sub |
Hierdoor wordt het volgende berichtvenster geretourneerd:
De waarde van 8 wordt daarom geretourneerd. Dit in een Excel-constante die het type gegevens definieert dat in de variabele wordt opgeslagen.
Deze constante waarde komt overeen met onderstaande tabel:
Constante | Waarde | Beschrijving |
---|---|---|
vbLeeg | 0 | Leeg (niet geïnitialiseerd) |
vbNull | 1 | Null (geen geldige gegevens) |
vbGeheel getal | 2 | Geheel getal |
vbLang | 3 | Lang geheel getal |
vbEnkel | 4 | Single-precision floating-point getal |
vbDubbel | 5 | Drijvende-kommagetal met dubbele precisie |
vbValuta | 6 | Valutawaarde |
vbDatum | 7 | Datumwaarde |
vbString | 8 | Snaar |
vbObject | 9 | Object |
vbFout | 10 | Foutwaarde |
vbBoolean | 11 | Booleaanse waarde |
vbVariant | 12 | Variant (alleen gebruikt met arrays van varianten) |
vbDataObject | 13 | Een gegevenstoegangsobject |
vbDecimaal | 14 | decimale waarde |
vbByte | 17 | Bytewaarde |
vbLangLang | 20 | LongLong integer (alleen geldig op 64-bits platforms) |
vbUserDefinedType | 36 | Varianten die door de gebruiker gedefinieerde typen bevatten |
vbArray | 8192 | Array (altijd toegevoegd aan een andere constante wanneer geretourneerd door deze functie) |
We kunnen een ander voorbeeld proberen:
12345 | SubtestVarType()Dim MyVariable als variantMijnVariabele = 32760MsgBox "Het type variabele is " & VarType(MyVariable)Einde sub |
Deze keer retourneert het berichtvenster een 2 omdat het type gegevens dat in de variabele is opgeslagen Integer is.
Als we de waarde echter wijzigen in 32780, is de waarderetour 3 - Lang geheel getal aangezien een Integer-gegevenstype een maximale waarde van 32767 heeft; waarna het een lang geheel getal is.
Als we de code opnieuw zouden wijzigen:
12345 | SubtestVarType()Dim MyVariable als variantMijnVariabele = 32760.52MsgBox "Het type variabele is " & VarType(MyVariable)Einde sub |
We zouden nu een waarde van 5 krijgen - het gegevenstype is Dubbel vanwege de decimalen.
Als we de waarde in de variabele tussen aanhalingstekens zouden plaatsen, zou opnieuw een 8 worden geretourneerd omdat elke waarde tussen aanhalingstekens wordt opgeslagen als een tekenreekswaarde.
12345 | SubtestVarType()Dim MyVariable als variantMijnVariabele = "32760.52"MsgBox "Het type variabele is " & VarType(MyVariable)Einde sub |