Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Odwołania do bibliotek

Termin Definicja
Odwołania do bibliotek

Odwołania do bibliotek to referencje projektu VBA do zewnętrznych komponentów udostępniających dodatkowe funkcje.

Jak działają odwołania do bibliotek w projekcie VBA

Odwołania do bibliotek w VBA są zapisanymi w projekcie referencjami do zewnętrznych komponentów, których funkcje, typy danych, klasy lub stałe mogą być używane przez kod makr. Projekt przechowuje informacje pozwalające środowisku Visual Basic for Applications rozpoznać bibliotekę podczas kompilowania i wykonywania procedur. Dzięki temu kod może korzystać na przykład z obiektów arkusza, systemu plików, wyrażeń regularnych albo funkcji udostępnianych przez zainstalowane składniki systemu Windows i pakietu Microsoft Office.

Lista odwołań jest dostępna w edytorze VBA po wybraniu polecenia Tools > References, czyli Narzędzia > Odwołania. Pozycje zaznaczone na liście są aktywnymi zależnościami projektu. Każda biblioteka ma nazwę, identyfikator oraz wersję, a w wielu przypadkach także plik będący jej składnikiem, na przykład biblioteką typu DLL lub plikiem typu OCX. Kolejność odwołań może mieć znaczenie, gdy różne biblioteki udostępniają elementy o takich samych nazwach.

Odwołanie ustawione a obiekt tworzony w kodzie

Wczesne wiązanie, nazywane także early binding, polega na zadeklarowaniu zmiennej z konkretnym typem pochodzącym z biblioteki, na przykład Dim fs As Scripting.FileSystemObject. Edytor VBA może wtedy podpowiadać właściwości i metody, a kompilator sprawdza część użytych nazw przed uruchomieniem procedury. Takie rozwiązanie wymaga jednak, aby odpowiednia biblioteka była dostępna i prawidłowo zarejestrowana na komputerze, na którym projekt zostanie otwarty.

Przy późnym wiązaniu, czyli late binding, obiekt jest tworzony zwykle przez CreateObject, a zmienna ma typ ogólny, na przykład Object. Kod nie potrzebuje wtedy zaznaczonego odwołania do biblioteki na etapie kompilacji, ale traci podpowiedzi edytora i część kontroli typów. Późne wiązanie nie usuwa wszystkich zależności: konkretny program lub komponent nadal musi być zainstalowany, aby polecenie utworzenia obiektu mogło się wykonać. Wybór między oboma sposobami zależy więc od tego, czy ważniejsza jest kontrola typów i wygoda programowania, czy większa przenośność projektu między stanowiskami.

Brak biblioteki, zgodność wersji i bitowość Office

Najczęstszym problemem jest odwołanie oznaczone jako MISSING, czyli „brakujące”. Występuje ono, gdy projekt wskazuje bibliotekę, której nie ma na danym komputerze, ma ona inną rejestrację systemową albo nie pasuje do używanej wersji oprogramowania. Skutkiem może być błąd kompilacji, nierozpoznany typ lub nierozpoznana funkcja. Samo ponowne uruchomienie Excela nie przywraca brakującego komponentu. Należy ustalić, jaka biblioteka była wymagana, sprawdzić jej dostępność oraz ocenić, czy projekt może działać po usunięciu lub zastąpieniu tej zależności.

Problemy mogą wynikać także z różnic między 32-bitową i 64-bitową wersją pakietu Office. Dotyczy to szczególnie deklaracji funkcji Windows API, kontrolek ActiveX oraz bibliotek COM, których składniki muszą być zgodne z architekturą procesu. W starszym kodzie VBA mogą pojawić się deklaracje wymagające dostosowania do 64-bitowego Office, między innymi przez użycie słowa kluczowego PtrSafe i właściwego typu LongPtr tam, gdzie przechowywany jest wskaźnik. Nie należy jednak mechanicznie zmieniać każdego typu Long, ponieważ może on nadal prawidłowo reprezentować wartość 32-bitową.

Postępowanie przy błędach odwołań w pliku makr

Diagnostykę warto rozpocząć od otwarcia projektu w edytorze VBA i sprawdzenia pozycji w oknie odwołań. Następnie można użyć polecenia kompilacji projektu, aby wykryć nierozpoznane typy, procedury lub stałe. Trzeba również przeanalizować moduły deklaracji, wywołania Declare, użycie kontrolek formularzy oraz fragmenty tworzące obiekty zewnętrzne. Usunięcie zaznaczenia przy brakującej bibliotece bez sprawdzenia kodu może tylko przesunąć problem do czasu wykonania makra.

Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów, komputerów PC i ich podzespołów, a w przypadku problemów z projektem VBA można przeanalizować zgodność środowiska Office, obecność wymaganych komponentów oraz działanie makr po zmianie konfiguracji. Przy pracy z plikiem zawierającym kod należy zachować kopię oryginału, ponieważ zmiana odwołań może wpłynąć na kompilację i zachowanie procedur korzystających z zewnętrznych bibliotek.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę