Créer et utiliser un dictionnaire en VBA
- Conditions préalables
-
Créer l’objet
Dictionary
à l’aide de VBA -
Ajout d’éléments dans l’objet
Dictionary
à l’aide de VBA -
Retourner une valeur sur le
Dictionnaire
à l’aide de VBA -
Modifier une valeur dans le
Dictionnaire
à l’aide de VBA -
Compter l’élément dans le
Dictionnaire
à l’aide de VBA - Imprimer toutes les clés et valeurs du dictionnaire
L’objet Dictionary
dans VBA n’est pas lié au dictionnaire de la langue, que nous utilisons pour connaître le sens des mots.
Dans VBA, l’objet Dictionary
est en quelque sorte similaire à l’objet Collection
dans le stockage des données. La principale différence est qu’une Collection
ne peut pas :
- Vérifier si un article est dans la collection
- Modifier la valeur d’un élément existant
Bien sûr, nous pouvons toujours utiliser Collection
et créer des solutions de contournement à ce problème, mais Dictionnaire
propose ces solutions avec des méthodes prédéfinies. Ainsi, Dictionnaire
peut être utile pour des tâches spécifiques, en particulier lors de la récupération d’un certain élément.
Cet article montre comment créer et utiliser l’objet Dictionary
pour effectuer certaines fonctionnalités dans votre code VBA.
Conditions préalables
L’objet Dictionary
n’est pas fourni avec la bibliothèque par défaut de VBA. Ainsi, avant d’utiliser pleinement l’objet Dictionary
, il est nécessaire de référencer la bibliothèque Microsoft Scripting Runtime
, y compris l’objet Dictionary
.
-
Ouvrir le fichier Excel.
-
Depuis l’onglet
Developer
, ouvrez l’éditeurVisual Basic
. -
Dans la barre d’outils
Tools
, cliquez surReferences
. -
Cochez la case
Microsoft Scripting Runtime
.
Vous êtes maintenant prêt.
Créer l’objet Dictionary
à l’aide de VBA
Maintenant que le Microsoft Scripting Runtime
est dans les References
, le bloc de code ci-dessous vous montrera comment créer un objet Dictionary
.
Créez un objet à partir de la bibliothèque Scripting.Dictionary
, puis initialisez-le en tant que nouvel objet.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
End Sub
Ajout d’éléments dans l’objet Dictionary
à l’aide de VBA
Syntaxe:
[DictionaryObject].Add([Key], [Item])
Paramètres:
[DictionaryObject] |
Obligatoire. Le nom de l’objet Dictionary |
[Key] |
Obligatoire. Les données par lesquelles l’“élément” est référencé à l’intérieur du Dictionnaire . |
[Item] |
Obligatoire. Définit ou renvoie la valeur d’un élément dans le Dictionary |
Nous pouvons ajouter des éléments au Dictionary
en utilisant le bloc de code plus tôt. Les noms (Glen, Myla, Katrina, Jose) ont été ajoutés comme clé et leur âge respectif comme valeurs sur le bloc de code ci-dessous.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add ("Glen", 25)
d.Add ("Myla", 49)
d.Add ("Jose", 58)
d.Add ("Katrina", 18)
End Sub
Retourner une valeur sur le Dictionnaire
à l’aide de VBA
Avec le Dictionary
, on peut retourner une valeur en connaissant la clé qui lui correspond.
Syntaxe de retour :
[Value] = [DictionaryObject](Key)
Modifier la syntaxe :
[DictionaryObject](Key) = [Value]
Paramètres:
[DictionaryObject] |
Obligatoire. Le nom du Dictionary |
[Key] |
Obligatoire. Les données par lesquelles l’“élément” est référencé à l’intérieur du Dictionary . |
[Value] |
Obligatoire. Définit ou renvoie la valeur d’un élément dans le Dictionary |
En utilisant la syntaxe, la valeur de la clé Myla
a renvoyé 49
.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Debug.Print d("Myla")
End Sub
Production :
49
Modifier une valeur dans le Dictionnaire
à l’aide de VBA
Avec le Dictionnaire
, on peut changer une valeur en connaissant la clé qui lui correspond.
Modifier la syntaxe :
[DictionaryObject](Key) = [Value]
Paramètres:
[DictionaryObject] |
Obligatoire. Le nom du Dictionary |
[Key] |
Obligatoire. Les données par lesquelles le Item est référencé à l’intérieur du Dictionary |
[Value] |
Obligatoire. Définit ou renvoie la valeur d’un élément dans le Dictionary |
Sur le bloc de code ci-dessous, la valeur de la clé Myla
a été modifiée de 49
à 50
en utilisant la syntaxe ci-dessus.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
d("Myla") = 50
Debug.Print d("Myla")
End Sub
Production :
50
Compter l’élément dans le Dictionnaire
à l’aide de VBA
Nous pouvons renvoyer le nombre de tous les éléments à l’intérieur du Dictionnaire
en utilisant la méthode Count
.
Syntaxe Count
:
[Value]= [DictionaryObject].Count
Paramètres:
[DictionaryObject] |
Obligatoire. Le nom du Dictionary |
[Value] |
Renvoie le nombre d’éléments dans le Dictionary |
Dans l’exemple ci-dessous, nous obtenons le contenu de l’objet d
en utilisant la méthode Count
.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Debug.Print "There are " & d.Count & " items in the Dictionary."
End Sub
Production :
There are 4 items in the Dictionary.
Imprimer toutes les clés et valeurs du dictionnaire
Le bloc de code ci-dessous imprimera toutes les clés et valeurs à l’intérieur du Dictionnaire
à l’aide d’une boucle.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
d.Add "Glen", 25
d.Add "Myla", 49
d.Add "Jose", 58
d.Add "Katrina", 18
Dim Key as Variant
For Each Key In d.Keys
Debug.Print Key, d(Key)
Next
End Sub
Production :
Glen 25
Myla 49
Jose 58
Katrina 18