Type de données de variante VBA (variable Dim)

Type de variable de variante

Une variable de variante peut contenir à tout moment des données (chaîne, entiers, décimales, objets, etc.). Si vous ne déclarez pas de type de variable, votre variable sera considérée comme une variante.

Pour déclarer une variable Variant, vous utilisez l'instruction Dim (abréviation de Dimension) :

1 Dim varName en tant que variante
1 Dim rng comme variante

Ensuite, pour attribuer une valeur à une variable, utilisez simplement le signe égal :

1 varName = "Jean"
1 rng = Sheets(1).Range("A1")

Mettre ceci dans une procédure ressemble à ceci :

12345678910 Sous strExample()'déclarer les variantesDim strName en tant que varianteDim rng comme variante'remplir les variablesstrName = "Fred Smith"Définir rng = Sheets(1).Range("A1")'remplir la feuillerng.Value = strNameFin du sous-marin

Si vous exécutez le code ci-dessus, la cellule A1 de la feuille 1 sera remplie avec "Fred Smith"

Par les noms déclarés ci-dessus, nous pourrions conclure que le varName contiendrait du texte, et le objFeuille contiendrait un objet feuille de calcul. Mais en réalité, tout type de données peut être dirigé vers la variable.

Vous pouvez remplir les variables déclarées ci-dessus comme suit et aucune erreur ne se produira.

1 varName = 6
1 objSheet - "Fred"

Il est inhabituel d'utiliser des variables variantes et n'est pas considéré comme une bonne pratique. À l'occasion, cependant, les variables Variant sont utiles.

Déclarer la variable variante au niveau du module ou au niveau global

Dans l'exemple précédent, vous avez déclaré la variable Variant dans une procédure. Les variables déclarées avec une procédure ne peuvent être utilisées que dans cette procédure.

Au lieu de cela, vous pouvez déclarer des variables Variant au niveau du module ou global.

Niveau du module

Niveau du module les variables sont déclarées en haut des modules de code avec le Faible déclaration.

Ces variables peuvent être utilisées avec n'importe quelle procédure dans ce module de code.

Niveau mondial

Niveau mondial les variables sont également déclarées en haut des modules de code. Cependant, au lieu d'utiliser le Faible déclaration, vous utilisez le Publique pour indiquer que la variable de chaîne est disponible pour être utilisée tout au long de votre projet VBA.

1 Public strName en tant que variante

Si vous avez déclaré la variable variant au niveau d'un module et utilisée dans un module différent, une erreur se produirait.

Si vous aviez utilisé le mot clé Public pour déclarer la variable variant, l'erreur ne se produirait pas et la procédure se déroulerait parfaitement.

Utilisation d'une variante pour remplir Excel

Considérez la procédure suivante :

12345678910111213141516171819 Variable de sous-test'déclare une chaîne pour contenir le nom du produitDim strProduct en tant que chaîne'déclare un entier pour contenir la quantité de produitDim iQty comme entier'déclarer les doubles pour contenir le prix du produit et le prix totalDim dblPrice en tant que doubleDim dblTotal comme Double'remplir les variablesstrProduct = "Farine tout usage"iQté = 3dblPrix = "$5.00"dblTotal = "15,00 $"'remplir la feuille ExcelRange("A1") = strProductPlage ("A2") = iQtéRange ("A3") = dblPrixPlage ("A4") = dblTotalFin du sous-marin

Lorsque nous exécutons ce code, l'erreur suivante se produit.

Cliquez sur Déboguer

Vous ne pouvez pas mettre un signe dollar dans la variable car la variable est déclarée comme un Double, et ne peut donc pas stocker de valeurs de chaîne.

Déclarer dblPrix et dblTotal en tant que variantes, ce qui signifie que vous n'êtes pas limité à un type de données.

1 Dim dblPrice comme variante
1 Dim dblTotal comme variante

Réexécutez le code et les données apparaîtront dans la feuille Excel comme il se doit.

A noter que les données saisies en A4 et A5 sont automatiquement converties ensuite par Excel en nombres.

Déclarer un tableau dynamique

Les variables de variante sont également utiles lorsque vous déclarez un tableau dynamique car elles permettent à la taille du tableau de changer pendant l'exécution.

Avec unTableau de variantes, vous n'avez pas besoin de définir la taille du tableau. La taille s'ajustera automatiquement.

123456789 Sous-VariantArray()Dim arrList() en tant que variante'Définir les valeursarrList= Array(1, 2, 3, 4)'Changer les valeursarrList= Array(1,2,3,4,5,6)'Position de sortie 4MsgBox arrVar(4)Fin du sous-marin

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave