Questo articolo dimostrerà l'utilizzo della funzione VarType in VBA.
VarType significa Tipo variabile. Possiamo fornire il nome della variabile alla funzione VarType e restituirà un numero intero che descrive il tipo di dati memorizzati in quella variabile in base a un elenco di costanti VBA.
Utilizzo di una variabile Variant per trovare il VarType
Possiamo dichiarare una variabile come variabile Variant. Questo ci consentirà di archiviare qualsiasi tipo di dati consentiti al suo interno. Possiamo quindi popolare questa variabile e utilizzare la funzione VarType per vedere quale tipo di dati è nella variabile.
Per esempio:
12345 | Sub TestVarType()Dim MyVariable As VariantMyVariable = "Hello World"MsgBox "Il tipo di variabile è " & VarType(MyVariable)Fine sottotitolo |
Questo restituirà la seguente finestra di messaggio:
Viene quindi restituito il valore di 8. Questo in una costante di Excel che definisce il tipo di dati archiviati nella variabile.
Questo valore costante corrisponde alla tabella seguente:
Costante | Valore | Descrizione |
---|---|---|
vbEmpty | 0 | Vuoto (non inizializzato) |
vbNull | 1 | Nullo (nessun dato valido) |
vbIntero | 2 | Numero intero |
vbLong | 3 | intero lungo |
vbSingle | 4 | Numero a virgola mobile a precisione singola |
vbDouble | 5 | Numero a virgola mobile a doppia precisione |
vbValuta | 6 | Valore della valuta |
vbDate | 7 | Valore della data |
vbString | 8 | Corda |
vbObject | 9 | Oggetto |
vbError | 10 | Valore di errore |
vbBoolean | 11 | valore booleano |
vbVariant | 12 | Variante (usato solo con array di varianti) |
vbDataObject | 13 | Un oggetto di accesso ai dati |
vbDecimal | 14 | Valore decimale |
vbByte | 17 | Valore in byte |
vbLongLong | 20 | Intero LongLong (valido solo su piattaforme a 64 bit) |
vbUserDefinedType | 36 | Varianti che contengono tipi definiti dall'utente |
vbArray | 8192 | Array (sempre aggiunto a un'altra costante quando restituito da questa funzione) |
Possiamo provare un altro esempio:
12345 | SottoTestVarType()Dim MyVariable As VariantMiaVariabile = 32760MsgBox "Il tipo di variabile è " & VarType(MyVariable)Fine sottotitolo |
Questa volta la finestra di messaggio restituirà un 2 poiché il tipo di dati archiviato nella variabile è Integer.
Tuttavia, se cambiamo il valore in 32780, il valore restituito sarà 3 - Long Integer poiché un tipo di dati Integer ha un valore massimo di 32767; dopo di che è un intero lungo.
Se dovessimo modificare ancora una volta il codice:
12345 | SottoTestVarType()Dim MyVariable As VariantMiaVariabile = 32760,52MsgBox "Il tipo di variabile è " & VarType(MyVariable)Fine sottotitolo |
Ora otterremmo un valore restituito di 5: il tipo di dati è Double a causa delle posizioni decimali.
Se dovessimo mettere il valore nella variabile tra virgolette, allora ancora una volta verrebbe restituito un 8 poiché qualsiasi valore contenuto tra virgolette viene memorizzato come valore stringa.
12345 | SottoTestVarType()Dim MyVariable As VariantMiaVariabile = "32760.52"MsgBox "Il tipo di variabile è " & VarType(MyVariable)Fine sottotitolo |