Cet article montrera l'utilisation de la fonction VarType dans VBA.
VarType signifie Type de variable. Nous pouvons fournir le nom de la variable à la fonction VarType, et elle renverra un entier qui décrit le type de données stockées dans cette variable en fonction d'une liste de constantes VBA.
Utilisation d'une variable de variante pour trouver le VarType
Nous pouvons déclarer une variable en tant que variable Variant. Cela nous permettra d'y stocker tout type de données autorisées. Nous pouvons ensuite remplir cette variable et utiliser la fonction VarType pour voir quel type de données se trouve dans la variable.
Par exemple:
12345 | Sous TestVarType()Dim MyVariable en tant que varianteMaVariable = "Bonjour tout le monde"MsgBox "Le type de variable est " & VarType(MaVariable)Fin du sous-marin |
Cela renverra la boîte de message suivante :
La valeur 8 est donc renvoyée. Ceci dans une constante Excel qui définit le type de données stockées dans la variable.
Cette valeur constante correspond au tableau ci-dessous :
Constant | Valeur | La description |
---|---|---|
vbVide | 0 | Vide (non initialisé) |
vbNull | 1 | Null (aucune donnée valide) |
vbEntier | 2 | Entier |
vbLong | 3 | Entier long |
vbUnique | 4 | Nombre à virgule flottante simple précision |
vbDouble | 5 | Nombre à virgule flottante double précision |
vbDevise | 6 | Valeur en devise |
vbDate | 7 | Valeur de date |
vbChaîne | 8 | Chaîne de caractères |
vbObjet | 9 | Objet |
vbErreur | 10 | Valeur d'erreur |
vbBooléen | 11 | Valeur booléenne |
vbVariante | 12 | Une variante (utilisé uniquement avec des tableaux de variantes) |
vbDataObject | 13 | Un objet d'accès aux données |
vbDécimal | 14 | Valeur décimale |
vboctet | 17 | Valeur en octet |
vbLongLong | 20 | Entier LongLong (valide sur les plates-formes 64 bits uniquement) |
vbUserDefinedType | 36 | Variantes qui contiennent des types définis par l'utilisateur |
vbArray | 8192 | Tableau (toujours ajouté à une autre constante lorsqu'il est renvoyé par cette fonction) |
On peut essayer un autre exemple :
12345 | Sous TestVarType()Dim MyVariable en tant que varianteMaVariable = 32760MsgBox "Le type de variable est " & VarType(MaVariable)Fin du sous-marin |
Cette fois, la boîte de message renverra un 2 car le type de données stockées dans la variable est un entier.
Cependant, si nous modifions la valeur en 32780, la valeur renvoyée sera 3 - Entier long car un type de données Integer a une valeur maximale de 32767; après quoi c'est un entier long.
Si nous devions à nouveau modifier le code :
12345 | Sous TestVarType()Dim MyVariable en tant que varianteMaVariable = 32760.52MsgBox "Le type de variable est " & VarType(MaVariable)Fin du sous-marin |
Nous obtiendrions maintenant une valeur de 5 renvoyée - le type de données est Double en raison des décimales.
Si nous devions mettre la valeur dans la variable entre guillemets, alors encore une fois, un 8 serait renvoyé car toute valeur contenue entre guillemets est stockée en tant que valeur de chaîne.
12345 | Sous TestVarType()Dim MyVariable en tant que varianteMaVariable = "32760.52"MsgBox "Le type de variable est " & VarType(MaVariable)Fin du sous-marin |