Słownik VBA

Słownik VBA programu Excel

Korzystając ze słownika VBA, możemy grupować wszystkie rodzaje danych w słowniku, aby uzyskać dostęp do wszystkich pozycji za pomocą jednej zmiennej. Możemy użyć słownika do stworzenia kolekcji kombinacji klucz-wartość. Gdy obiekt zostanie powiązany z kluczami, później możemy je wywołać, używając po prostu nazwy klucza.

Słownik VBA jest bardzo trudny do znalezienia, ale postaramy się jak najlepiej, abyś był łatwy do zrozumienia. Możemy porównać zarówno słownik, jak i kolekcję w tej samej skali, ale niektóre słowniki VBA oferują niektóre funkcje, które nie są dostępne w obiekcie Kolekcje VBA.

Praca ze słownikami VBA

Aby móc pracować ze słownikami VBA, najpierw musimy ustawić odniesienie do obiektu na „Microsoft Scripting Runtime”.

Aby ustawić odniesienie, wykonaj poniższe czynności.

Krok 1: Przejdź do Narzędzia> Referencje.

Krok 2: Przewiń w dół i wybierz opcję „Microsoft Scripting Runtime”, a następnie kliknij OK.

Teraz mamy dostęp do słownika VBA z biblioteką skryptów.

Możesz pobrać ten szablon VBA Dictionary Excel tutaj - Szablon VBA Dictionary Excel

Utwórz wystąpienie słownika z kodem VBA

Po ustawieniu odniesienia na „Microsoft Scripting Runtime” musimy utworzyć wystąpienie słownika VBA. Najpierw zadeklaruj zmienną jako Scripting.Dictionary

Kod:

 Sub Dict_Example1 () Dim Dict As Scripting.Dictionary End Sub

Teraz zmienna „Dict” jest zmienną obiektową. W przypadku zmiennej obiektowej musimy ustawić odniesienie do obiektu za pomocą słowa „Nowy”.

Ustaw Dict = New Scripting.Dictionary

Teraz mamy dostęp do wszystkich właściwości i metod słownika.

Uwaga: Wszystkie słowa z zielonymi guzikami to Metody, a pozostałe to Właściwości.

Teraz zadeklaruj jedną zmienną jako DictResult.

Dim DictResult As Variant

Teraz używając zmiennej „Dict” utworzymy nowy klucz.

Kluczowe jest to, jakie słowo dodajemy. Dodajmy nazwę telefonu komórkowego jako „Redmi”.

Pozycja to nic innego jak definicja słowa ( klucza ), które dodaliśmy. Taką definicją telefonu jest jego cena, więc cenę dodam do 15000.

Teraz dla kolejnej zmiennej „DictResult” dodamy słowo kluczowe za pomocą zmiennej „Dict”.

Klucz to słowo, które utworzyliśmy w poprzednim kroku, czyli nazwa telefonu.

Teraz zmienna „DictResult” zawiera element klucza, który dodaliśmy. Teraz pokaż wynik zmiennej w oknie komunikatu VBA.

Kod:

 Sub Dict_Example1 () Dim Dict As Scripting.Dictionary Set Dict = New Scripting.Dictionary Dim DictResult As Variant Dict.Add Key: = "Redmi", Item: = 15000 DictResult = Dict ("Redmi") MsgBox DictResult End Sub 

Teraz uruchom kod ręcznie lub za pomocą klawisza F5, a okno komunikatu pokaże cenę ( przedmiot ) telefonu ( klucz ), który dodaliśmy za pomocą „Dict”.

Zrozumienie klucza i elementu

Jeśli nie zrozumiałeś KEY & ITEM, wyjaśnię ci na prostym przykładzie. Wyobraź sobie prawdziwy słownik świata, w którym mamy słowa (klucze) i znaczenie tych słów (pozycja). Podobnie, słowa są kluczami, a definicja lub znaczenie to przedmiot.

Spójrzmy teraz na jeszcze jeden przykład słownika. Załóżmy, że szukasz numeru telefonu określonej osoby. Jak wyszukujesz?

Oczywiście używając nazwy, której użyliśmy podczas zapisywania numeru telefonu. Tutaj mamy dwie rzeczy: jedna to imię i nazwisko osoby, a druga to numer telefonu.

Imię Osoby to Klucz.

Numer telefonu jest pozycja.

Jeśli chcesz przykład Excela, możemy podać WYSZUKAJ.PIONOWO jako przykład. Używamy wzoru do wyszukiwania wartości na podstawie WARTOŚCI WYSZUKIWANIA (klucz). Wynik zwracany przez funkcję WYSZUKAJ.PIONOWO nosi nazwę Pozycja.

Sprawdź, czy telefon komórkowy jest tam, czy nie

Wyobraź sobie, że udostępniasz swoim klientom formularz użytkownika, aby sprawdzić cenę telefonu komórkowego za pomocą prostego pola wprowadzania danych. Poniżej kod VBA Excela wyświetli pole wprowadzania przed użytkownikiem i musi wpisać markę telefonu, którego szuka, jeśli nazwa marki znajduje się w słowniku, pokaże cenę odpowiedniego telefonu, w przeciwnym razie wyświetla komunikat jako „Telefon, którego szukasz, nie istnieje w bibliotece”.

Kod:

 Sub Dict_Example2 () Dim PhoneDict As Scripting.Dictionary Dim DictResult As Variant Set PhoneDict = New Scripting.Dictionary PhoneDict.Add Key: = "Redmi", Item: = 15000 PhoneDict.Add Key: = "Samsung", Item: = 25000 PhoneDict .Add Key: = "Oppo", Item: = 20000 PhoneDict.Add Key: = "VIVO", Item: = 21000 PhoneDict.Add Key: = "Jio", Item: = 2500 DictResult = Application.InputBox (Prompt: = „Wprowadź nazwę telefonu”) Jeśli PhoneDict.Exists (DictResult), to MsgBox „Cena telefonu” & DictResult & ”to:„ & PhoneDict (DictResult) Else MsgBox ”Telefon, którego szukasz, nie istnieje w Biblioteka „End If End Sub 

Uruchom ten kod za pomocą klawisza F5 lub ręcznie i zobacz wynik.