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

Automatyczne uruchamianie makra

Termin Definicja
Automatyczne uruchamianie makra

Automatyczne uruchamianie makra to mechanizm wykonujący zdefiniowany kod VBA samoczynnie przy otwarciu dokumentu.

Na czym polega automatyczne uruchamianie makra

Automatyczne uruchamianie makra to mechanizm, w którym kod VBA zostaje wywołany bez ręcznego wskazywania polecenia „Uruchom makro”. W aplikacjach pakietu Microsoft Office moment wywołania zależy od rodzaju dokumentu i używanego programu. W skoroszycie programu Excel typowym zdarzeniem jest Workbook_Open, umieszczone w module obiektu ThisWorkbook. Procedura ta jest wykonywana podczas otwierania skoroszytu, jeżeli program Excel dopuści wykonywanie makr.

W dokumentach programu Word podobną funkcję pełni zdarzenie Document_Open, umieszczane w module obiektu dokumentu. Starszym mechanizmem, spotykanym między innymi w skoroszytach Excela, jest procedura Auto_Open zapisana w standardowym module VBA. Nie są to identyczne mechanizmy: zdarzenia obiektowe należą do modelu zdarzeń aplikacji, natomiast Auto_Open jest specjalnie rozpoznawaną procedurą automatyzującą otwarcie pliku. W praktyce działanie może zależeć od typu pliku, wersji programu i ustawień zabezpieczeń.

Zdarzenie otwarcia dokumentu a procedura Auto_Open

Makro uruchamiane przy otwarciu dokumentu może wykonywać czynności przygotowawcze, takie jak ustawienie wartości komórek, odświeżenie elementów interfejsu, sprawdzenie warunków początkowych albo przygotowanie formularza. Kod nie musi być zapisany w jednym miejscu, ponieważ procedura otwierająca może wywoływać inne procedury znajdujące się w modułach standardowych. Z tego powodu przy analizie pliku trzeba sprawdzić nie tylko samą procedurę Workbook_Open lub Document_Open, ale również wszystkie funkcje i procedury, które są przez nią wywoływane.

Kolejność i sposób reakcji mogą mieć znaczenie dla poprawności działania. Kod uruchamiany z modułu ThisWorkbook odnosi się do konkretnego skoroszytu, podczas gdy kod w module standardowym może operować na aktywnym skoroszycie, aktywnym arkuszu lub zaznaczeniu użytkownika. Takie odwołania, jak ActiveWorkbook, ActiveSheet i Selection, mogą wskazać inny obiekt, niż zakładał autor makra. Bezpieczniejsza analiza polega na ustaleniu, do którego dokumentu odwołuje się kod oraz jakie warunki muszą być spełnione, aby wykonanie zakończyło się prawidłowo.

Ustawienia zabezpieczeń i skutki blokady makr

Automatyczne uruchamianie nie oznacza, że każde makro zostanie wykonane przy każdym otwarciu pliku. Microsoft Office może rozpocząć dokument z wyłączoną zawartością aktywną, zależnie od ustawień makr, lokalizacji pliku, podpisu cyfrowego oraz oceny źródła dokumentu. Jeżeli makra są zablokowane, procedura otwierająca VBA nie wykona się, a funkcje zależne od tego kodu mogą pozostać nieaktywne. Samo otwarcie dokumentu nie jest więc wystarczającym dowodem, że automatyzacja zadziałała.

Objawami blokady mogą być brak przygotowania arkusza, nieuzupełnione pola formularza, niedziałające przyciski formularza albo komunikat wskazujący na wyłączone makra. Przy sprawdzaniu należy odróżnić blokadę zabezpieczeń od błędu kodu. W pierwszym przypadku procedura nie zostaje dopuszczona do wykonania, a w drugim uruchamia się i przerywa po wystąpieniu błędu wykonania. Znaczenie może mieć również format pliku: skoroszyt Excela zawierający kod VBA powinien być zapisany w formacie obsługującym makra, na przykład .xlsm, ponieważ zwykły format .xlsx nie przechowuje projektu VBA.

Sprawdzanie działania makra przy otwieraniu pliku

Diagnostykę należy rozpocząć od ustalenia aplikacji, formatu dokumentu i miejsca, w którym zapisano kod. Następnie sprawdza się nazwę procedury, jej moduł oraz zależności wywoływane podczas otwarcia. W Excelu trzeba zweryfikować moduł ThisWorkbook, standardowe moduły z procedurą Auto_Open oraz ewentualne zdarzenia arkuszy. W Wordzie należy przeanalizować moduł dokumentu i procedurę Document_Open. Pomocne jest uruchomienie pliku testowego z wyłączonymi makrami, a następnie w kontrolowany sposób sprawdzenie zachowania po ich dopuszczeniu.

Jeżeli kod nie działa, warto sprawdzić błędy składni, brakujące odwołania biblioteczne, nieistniejące arkusze, zmienione nazwy zakresów oraz ścieżki do plików używanych przez makro. Należy także zweryfikować, czy kod nie zakłada obecności konkretnego dokumentu, dodatku lub ustawienia aplikacji. W przypadku dokumentu otrzymanego z zewnętrznego źródła nie powinno się bezrefleksyjnie włączać makr, ponieważ automatycznie wywoływany kod może zmieniać zawartość pliku, uruchamiać operacje na systemie lub próbować korzystać z innych zasobów komputera. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów i komputerów PC, w tym diagnostykę problemów z oprogramowaniem oraz działaniem makr VBA.

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