Visual Basic for Applications:
Korzystanie z tablic asocjacyjnych

Jak używać:

W VBA obiekt Dictionary zapewnia funkcjonalność podobną do tablic asocjacyjnych. Musisz najpierw dodać odniesienie do Microsoft Scripting Runtime, aby go użyć:

  1. W edytorze VBA przejdź do Narzędzia > Odniesienia…
  2. Zaznacz “Microsoft Scripting Runtime” i kliknij OK.

Oto jak zadeklarować, wypełnić i uzyskać dostęp do elementów w Dictionary:

Dim sampleDictionary As Dictionary
Set sampleDictionary = New Dictionary

' Dodawanie elementów
sampleDictionary.Add Key:="Name", Item:="Jan Kowalski"
sampleDictionary.Add Key:="Age", Item:=29
sampleDictionary.Add Key:="Occupation", Item:="Inżynier"

' Dostęp do elementów
Debug.Print sampleDictionary.Item("Name")  ' Wynik: Jan Kowalski
Debug.Print sampleDictionary.Item("Age")   ' Wynik: 29

' Sprawdzanie czy klucz istnieje
If sampleDictionary.Exists("Occupation") Then
    Debug.Print "Klucz Occupation istnieje"
End If

' Usuwanie elementów
sampleDictionary.Remove("Occupation")

' Przechodzenie przez słownik
For Each Key In sampleDictionary.Keys
    Debug.Print Key & ": " & sampleDictionary.Item(Key)
Next Key

Głębsze spojrzenie

Obiekt Dictionary pod spodem łączy się ze składnikami Windows Scripting Host. Jako taki, jest późnozwiązanym obiektem COM, który był w przeszłości powszechnym sposobem rozszerzania funkcjonalności VBA. Jego użycie w VBA może znacząco zwiększyć zdolność języka do manipulowania złożonymi zestawami danych bez narzucania sztywnej struktury, jak w przypadku tradycyjnych tablic lub zakresów Excela.

Jednym z ograniczeń do zapamiętania jest to, że dostęp do Dictionary wymaga ustawienia odniesienia do Microsoft Scripting Runtime, co może komplikować dystrybucję projektów VBA. Alternatywy takie jak kolekcje istnieją wewnątrz VBA, ale brakuje im niektórych kluczowych cech Dictionary, takich jak łatwość sprawdzania istnienia klucza bez wywoływania błędu.

W bardziej nowoczesnych kontekstach programistycznych języki takie jak Python oferują wbudowane wsparcie dla tablic asocjacyjnych (znanych również jako słowniki w Pythonie) bez potrzeby dodawania zewnętrznych odniesień. To wbudowane wsparcie usprawnia proces i oferuje bardziej zaawansowane funkcje “od ręki”. Jednak w ramach VBA i dla specyficznych zastosowań związanych z automatyzacją zadań w pakiecie Microsoft Office, użycie obiektu Dictionary pozostaje potężną i stosowną metodą na struktury danych podobne do tablic asocjacyjnych.