Kontynuując poprzedni wpis o tym samym tytule tym razem trzecia z technik odnajdywania unikalnych elementów kolekcji. Technika ta opiera się o wykorzystanie słownika Dictionary. Wszystkich czytelników, których rozwiązanie to w jakiś sposób zainteresuje odsyłam do
tej strony, na której znaleźć można dodatkowe informacje.
Poniższy kod, korzystając z obiektu słownika, zwróci do arkusza unikalne wartości z tablicy. Wewnątrz kodu zawarte zostały dodatkowe informacje i komentarze wyjaśniające cały mechanizm.
04 | wykorzystując późne wiązanie |
06 | Set Słownik = CreateObject( "Scripting.Dictionary" ) |
08 | Dim Element As Variant |
09 | Dim arrTablica As Variant |
13 | arrTablica = Array( "Do" , "Re" , "Mi" , "Do" , "Fa" , "Sol" , _ |
14 | "Re" , "Mi" , "Fa" , "La" , "Do" , "Si" , _ |
16 | "fa" , "sol" , "LA" , "sI" ) |
19 | For Each Element In arrTablica |
21 | Słownik(StrConv(Element, vbProperCase)) = 1 |
25 | For Each Element In Słownik.keys |
Na koniec kluczowe pytanie, którą technikę użyć- kolekcję czy słownik. Osobiście nie udzielę jednoznacznej odpowiedzi, ale wskażę na kilka różnic i podobieństw boldem oznaczając lepsze rozwiązanie.
a)
Kolekcja jest obiektem wbudowanym języka VBA, Słownik wymaga tworzenia referencji do osobnej biblioteki.
b) Kolekcja wymaga stosowania obsługi błędów
czego nie ma w przypadku Słownika i co jest rozwiązaniem (pozornie?) bardziej profesjonalnym.
c)
Dodawanie elementu do kolekcji ignoruje wielkość liter, słownik uwzględnia wielkość liter przez co wymaga stosowanie dodatkowych technik VBA.
d) Kolekcja posiada ograniczony zasób metod i właściwości podczas gdy
słownik pozostaje bardziej elastyczny pod względem szerszych zastosowań.
Brak komentarzy:
Prześlij komentarz