Erstellen und verwenden ein Dictionary in VBA
- Voraussetzungen
-
Erstellen Sie das
Dictionary
-Objekt mit VBA -
Hinzufügen von Elementen zum Objekt
Dictionary
mit VBA -
Geben Sie einen Wert im
Dictionary
mit VBA zurück -
Ändern Sie einen Wert im
Dictionary
mit VBA -
Zählen Sie das Element im
Dictionary
mit 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
Entwickler
denVisual Basic
-Editor. -
Klicken Sie in der Symbolleiste
Extras
aufReferenzen
. -
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