Erstellen und verwenden ein Dictionary in VBA
- Voraussetzungen
-
Erstellen Sie das
Dictionary-Objekt mit VBA -
Hinzufügen von Elementen zum Objekt
Dictionarymit VBA -
Geben Sie einen Wert im
Dictionarymit VBA zurück -
Ändern Sie einen Wert im
Dictionarymit VBA -
Zählen Sie das Element im
Dictionarymit VBA - Drucken Sie alle Schlüssel und Werte im Dictionary
Das Objekt Dictionary in VBA hat nichts mit dem Sprachwörterbuch zu tun, das wir verwenden, um die Bedeutung von Wörtern zu kennen.
In VBA ähnelt das Objekt Dictionary dem Objekt Collection beim Speichern von Daten. Der Hauptunterschied besteht darin, dass eine Sammlung Folgendes nicht kann:
- Überprüfen Sie, ob sich ein Artikel in der Sammlung befindet
- Ändern Sie den Wert eines vorhandenen Artikels
Natürlich können wir weiterhin Collection verwenden und Workarounds für dieses Problem erstellen, aber Dictionary bietet diese Lösungen mit vordefinierten Methoden an. So kann Dictionary für bestimmte Aufgaben nützlich sein, insbesondere beim Abrufen eines bestimmten Elements.
Dieser Artikel zeigt, wie Sie das Objekt Dictionary erstellen und verwenden, um bestimmte Funktionen in Ihrem VBA-Code auszuführen.
Voraussetzungen
Das Dictionary-Objekt wird nicht mit der Standardbibliothek von VBA geliefert. Daher muss vor der vollständigen Verwendung des Objekts Dictionary auf die Bibliothek Microsoft Scripting Runtime einschließlich des Objekts Dictionary verwiesen werden.
-
Excel-Datei öffnen.
-
Öffnen Sie auf der Registerkarte
EntwicklerdenVisual Basic-Editor. -
Klicken Sie in der Symbolleiste
ExtrasaufReferenzen. -
Aktivieren Sie das Kontrollkästchen
Microsoft Scripting Runtime.
Sie sind jetzt fertig.
Erstellen Sie das Dictionary-Objekt mit VBA
Nachdem sich die Microsoft Scripting Runtime in den Referenzen befindet, zeigt der folgende Codeblock, wie ein Dictionary-Objekt erstellt wird.
Erstellen Sie ein Objekt aus der Bibliothek Scripting.Dictionary und initialisieren Sie es dann als neues Objekt.
Sub DictionaryDemo()
Dim d As Scripting.Dictionary
Set d = New Scripting.Dictionary
End Sub
Hinzufügen von Elementen zum Objekt Dictionary mit VBA
Syntax:
[DictionaryObject].Add([Key], [Item])
Parameter:
[DictionaryObject] |
Erforderlich. Der Name des Wörterbuchs |
[Key] |
Erforderlich. Die Daten, mit denen der Artikel im Dictionary referenziert wird. |
[Item] |
Erforderlich. Setzt oder gibt den Wert eines Items im Dictionary zurück |
Wir können Elemente zum Dictionary hinzufügen, indem wir den Codeblock früher verwenden. Namen (Glen, Myla, Katrina, Jose) wurden als Schlüssel und ihr jeweiliges Alter als Werte im Codeblock unten hinzugefügt.
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
Geben Sie einen Wert im Dictionary mit VBA zurück
Mit dem Dictionary können wir einen Wert zurückgeben, indem wir den dazugehörigen Schlüssel kennen.
Rückgabesyntax:
[Value] = [DictionaryObject](Key)
Syntax ändern:
[DictionaryObject](Key) = [Value]
Parameter:
[DictionaryObject] |
Erforderlich. Der Name des Dictionary |
[Key] |
Erforderlich. Die Daten, mit denen der Item im Dictionary referenziert wird. |
[Value] |
Erforderlich. Setzt oder gibt den Wert eines Items im Dictionary zurück |
Unter Verwendung der Syntax gab der Wert des Schlüssels Myla 49 zurück.
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
Ausgabe:
49
Ändern Sie einen Wert im Dictionary mit VBA
Mit dem Dictionary können wir einen Wert ändern, indem wir den dazugehörigen Schlüssel kennen.
Syntax ändern:
[DictionaryObject](Key) = [Value]
Parameter:
[DictionaryObject] |
Erforderlich. Der Name des Dictionary |
[Key] |
Erforderlich. Die Daten, mit denen der Item im Dictionary referenziert wird |
[Value] |
Erforderlich. Setzt oder gibt den Wert eines Items im Dictionary zurück |
Im Codeblock unten wurde der Wert des Schlüssels Myla mit der obigen Syntax von 49 auf 50 geändert.
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
Ausgabe:
50
Zählen Sie das Element im Dictionary mit VBA
Wir können die Anzahl aller Elemente innerhalb des Dictionary mit der Count-Methode zurückgeben.
Count syntax:
[Value]= [DictionaryObject].Count
Parameter:
[DictionaryObject] |
Erforderlich. Der Name des Dictionary |
[Value] |
Gibt die Anzahl der Einträge im Dictionary zurück |
Im folgenden Beispiel erhalten wir den Inhalt des Objekts d mit der Methode 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
Ausgabe:
There are 4 items in the Dictionary.
Drucken Sie alle Schlüssel und Werte im Dictionary
Der folgende Codeblock druckt alle Schlüssel und Werte innerhalb des Dictionary mit einer Schleife.
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
Ausgabe:
Glen 25
Myla 49
Jose 58
Katrina 18