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 RegisterkarteEntwicklerdenVisual Basic-Editor.
- 
Klicken Sie in der SymbolleisteExtrasaufReferenzen.
- 
Aktivieren Sie das KontrollkästchenMicrosoft 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 ArtikelimDictionaryreferenziert wird. | 
| [Item] | Erforderlich. Setzt oder gibt den Wert eines Items im Dictionaryzurü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 ItemimDictionaryreferenziert wird. | 
| [Value] | Erforderlich. Setzt oder gibt den Wert eines Items im Dictionaryzurü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 ItemimDictionaryreferenziert wird | 
| [Value] | Erforderlich. Setzt oder gibt den Wert eines Items im Dictionaryzurü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 Dictionaryzurü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