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

VBA przestaje działać

Termin Definicja
VBA przestaje działać

VBA przestaje działać zwykle wskutek uszkodzenia projektu lub braku wymaganego odwołania do biblioteki.

Gdy projekt VBA nie uruchamia procedur

VBA przestaje działać najczęściej wtedy, gdy problem dotyczy samego projektu makr, jego odwołań albo ustawień zabezpieczeń pakietu Microsoft Office. Objaw może wyglądać różnie: przyciski formularza nie reagują, makro kończy się komunikatem o błędzie, edytor Visual Basic for Applications nie otwiera modułu albo procedura zatrzymuje się na konkretnej linii. Sam fakt, że skoroszyt, dokument lub prezentacja otwiera się poprawnie, nie oznacza jeszcze, że zawarty w nim kod VBA ma dostęp do wszystkich wymaganych elementów.

W projekcie VBA kod jest przechowywany w modułach standardowych, modułach obiektów, modułach formularzy oraz klasach. Procedura może odwoływać się do arkusza, formularza, kontrolki, funkcji systemowej albo obiektu udostępnianego przez bibliotekę zewnętrzną. Jeżeli nazwa obiektu została zmieniona, moduł usunięto lub kod przeniesiono do innego pliku, kompilacja może się nie powieść mimo braku zmian w samej procedurze. W Excelu przykładem jest odwołanie do arkusza po nazwie kodowej, która nie odpowiada już właściwemu obiektowi, albo użycie zakresu z arkusza, którego nie ma w aktualnym skoroszycie.

Brakujące odwołania do bibliotek i błąd kompilacji

Edytor VBA przechowuje listę referencji projektu w sekcji dostępnej przez polecenie „Narzędzia” oraz „Odwołania”. Jeśli jedna z bibliotek nie jest dostępna, przy jej pozycji może pojawić się oznaczenie „MISSING” lub „BRAK”. Taka sytuacja występuje między innymi po przeniesieniu pliku na inny komputer, odinstalowaniu składnika Office, zmianie wersji kontrolki ActiveX albo usunięciu programu, który dostarczał bibliotekę COM. Kod korzystający z typów lub funkcji z brakującej biblioteki może wtedy zgłaszać błąd kompilacji, na przykład „Nie znaleziono projektu lub biblioteki”.

Weryfikacja powinna rozpocząć się od otwarcia edytora VBA skrótem Alt+F11, wybrania projektu i sprawdzenia listy odwołań. Następnie warto użyć polecenia „Debugowanie” oraz „Kompiluj projekt VBA”. Edytor wskaże pierwsze miejsce, którego nie potrafi zinterpretować. Nie należy usuwać odwołania tylko dlatego, że jego nazwa jest nieznana. Trzeba ustalić, czy kod rzeczywiście go potrzebuje, a następnie przywrócić właściwy składnik lub zmienić kod na rozwiązanie zgodne z aktualnym środowiskiem. W przypadku prostych typów można czasem zastąpić wczesne wiązanie, takie jak deklaracja konkretnego obiektu biblioteki, późnym wiązaniem przez `CreateObject`, ale taka zmiana wymaga sprawdzenia nazw klas i dostępnych metod.

Ustawienia zabezpieczeń, format pliku i uszkodzenie projektu

Makra mogą nie uruchomić się również dlatego, że Microsoft Office blokuje wykonywanie kodu. W Centrum zaufania można określić sposób obsługi makr, lokalizacje zaufane oraz dodatki. Plik pobrany z Internetu lub otrzymany jako załącznik może mieć ustawiony znacznik pochodzenia, a Office może zablokować makra bez pytania o uruchomienie. W takim przypadku należy sprawdzić właściwości pliku w systemie Windows, źródło dokumentu oraz komunikat wyświetlany przez konkretną aplikację. Samo obniżenie poziomu zabezpieczeń dla wszystkich dokumentów nie jest właściwą metodą diagnostyczną.

Znaczenie ma także format pliku. W Excelu kod VBA wymaga formatu obsługującego makra, na przykład XLSM albo XLTM; zapis skoroszytu jako XLSX usuwa projekt VBA. W Wordzie dokument z makrami powinien być zapisany jako DOCM lub szablon DOTM. Jeżeli problem dotyczy jednego pliku, należy wykonać kopię i sprawdzić, czy projekt można wyeksportować z modułów do plików bas, cls lub frm, a następnie zaimportować do nowego dokumentu. Taka procedura pomaga odróżnić uszkodzenie kontenera dokumentu od błędu w kodzie. Jeżeli nie można otworzyć projektu, kod zatrzymuje się podczas zapisu albo edytor zgłasza błędy niezwiązane z konkretną instrukcją, trzeba brać pod uwagę uszkodzenie projektu i pracować wyłącznie na kopii pliku.

Praktyczne kroki przywracania działania makr

Diagnostykę warto prowadzić od najprostszego testu: otworzyć kopię pliku, sprawdzić komunikat bezpieczeństwa, uruchomić edytor VBA i wykonać kompilację projektu. Następnie należy przejść przez punkty przerwania oraz obsługę błędów, aby ustalić, czy procedura kończy się przed wykonaniem kodu, czy dopiero po wywołaniu konkretnej funkcji. Warto także sprawdzić, czy problem występuje w każdym dokumencie, czy tylko w jednym pliku. Jeżeli inne makra działają, a jedna procedura nie, przyczyną może być błąd logiczny, nieistniejąca ścieżka pliku, zmieniona nazwa arkusza albo niezgodny typ danych, a nie awaria całego mechanizmu VBA.

Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a w przypadku problemów z VBA może pomóc w sprawdzeniu środowiska Office, formatu dokumentu, odwołań bibliotek oraz ustawień uruchamiania makr. Bezpieczna naprawa powinna obejmować pracę na kopii dokumentu, zapis kopii zapasowej modułów i sprawdzenie projektu po każdej zmianie. Jeżeli kod korzysta z dodatków, kontrolek ActiveX lub bibliotek instalowanych poza Office, trzeba również potwierdzić ich obecność i zgodność z używaną wersją aplikacji. Dopiero po udanej kompilacji i wykonaniu testowych procedur można uznać, że problem został usunięty, a nie tylko chwilowo ukryty.

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