| Termin | Definicja |
|---|---|
| Brak działania makr | Brak działania makr sygnalizuje niemożność wykonania kodu VBA osadzonego w dokumencie aplikacji biurowej. Jak rozpoznać problem z uruchamianiem makr VBABrak działania makr oznacza, że aplikacja biurowa otworzyła dokument, ale nie wykonała zawartego w nim kodu VBA. Dotyczy to przede wszystkim programów Microsoft Excel, Word, Access i PowerPoint oraz plików, które mogą przechowywać makra, takich jak XLSM, XLTM, DOCM, DOTM, ACCDB z kodem VBA albo PPTM. Zwykły format XLSX lub DOCX nie przechowuje makr VBA, dlatego zapisanie dokumentu w takim formacie może usunąć kod albo uniemożliwić jego późniejsze użycie. Objawem może być brak reakcji przycisku uruchamiającego procedurę, komunikat o wyłączonych makrach, niedziałające automatyczne formatowanie, brak importu danych albo nieuzupełnienie arkusza po otwarciu pliku. W Excelu problem może dotyczyć procedury przypisanej do przycisku formularza, zdarzenia skoroszytu, na przykład Workbook_Open, lub kodu znajdującego się w module standardowym. W Wordzie makro może być przypisane do przycisku, skrótu klawiaturowego albo zdarzenia otwarcia dokumentu. Sam fakt, że dokument wyświetla dane i można go edytować, nie oznacza, że kod VBA został dopuszczony do wykonania. Ustawienia zabezpieczeń, lokalizacja pliku i podpis cyfrowyJedną z najczęstszych przyczyn jest konfiguracja Centrum zaufania Microsoft Office. W ustawieniach zabezpieczeń makr użytkownik może całkowicie wyłączyć makra, wyłączyć je z powiadomieniem albo dopuścić wyłącznie makra podpisane cyfrowo. Przy ustawieniu wyłączenia bez powiadomienia dokument nie pokaże standardowego przycisku umożliwiającego ich włączenie. Warto sprawdzić ustawienia w ścieżce Plik, Opcje, Centrum zaufania, Ustawienia Centrum zaufania, Ustawienia makr, pamiętając, że zasady organizacyjne mogą wymuszać konkretną konfigurację i blokować jej zmianę. Znaczenie ma również źródło pliku. Dokument pobrany z internetu lub otrzymany jako załącznik może mieć przypisany identyfikator pochodzenia, określany w systemie Windows jako Mark of the Web. Nowsze wersje Microsoft Office mogą wtedy blokować makra pochodzące z internetu, nawet jeśli wcześniej działały lokalnie. W Eksploratorze plików można sprawdzić właściwości dokumentu i, jeśli źródło jest znane oraz zaufane, użyć opcji Odblokuj. Innym rozwiązaniem jest przechowywanie pliku w lokalizacji dodanej do Zaufanych lokalizacji w Centrum zaufania. Nie należy dodawać do zaufanych lokalizacji całego katalogu Pobrane ani przypadkowych udziałów sieciowych, ponieważ każdy znajdujący się tam dokument może otrzymać podwyższone zaufanie. Kontrola kodu VBA i zależności dokumentuJeżeli makra są dozwolone, należy sprawdzić, czy kod rzeczywiście znajduje się w otwartym pliku i czy procedura nie została zmieniona. Edytor VBA można otworzyć skrótem Alt+F11. W projekcie dokumentu trzeba zweryfikować moduły standardowe, moduły arkuszy, moduł ThisWorkbook albo odpowiednik dokumentu Word. Procedura przypisana do zdarzenia musi mieć właściwą nazwę i znajdować się w odpowiednim module. Na przykład Workbook_Open działa jako zdarzenie skoroszytu, natomiast kod umieszczony w module standardowym nie zostanie automatycznie potraktowany jako procedura zdarzeniowa. Wykonanie makra może zatrzymać się także z powodu błędu w kodzie lub brakującej zależności. W Edytorze VBA polecenie Debuguj, Kompiluj projekt VBA pozwala wykryć część błędów składni i niezgodności deklaracji. W menu Narzędzia, Odwołania może pojawić się pozycja oznaczona jako MISSING, gdy projekt wymaga biblioteki, której nie ma w systemie. Kod wykorzystujący obiekty zewnętrznych programów, kontrolki ActiveX, połączenia z plikami lub sterowniki bazodanowe może działać na jednym komputerze, a na innym zgłaszać błąd wykonania. Należy również sprawdzić, czy plik nie został zapisany w trybie chronionym, czy nie jest tylko do odczytu oraz czy makro nie odwołuje się do nieistniejących ścieżek, arkuszy, nazw zakresów lub plików pomocniczych. Bezpieczne przywracanie automatyzacji w pakiecie OfficeNaprawę warto rozpocząć od wykonania kopii dokumentu i ustalenia, czy problem występuje tylko w jednym pliku, czy we wszystkich dokumentach zawierających VBA. Jeżeli działa kopia zapisana w prawidłowym formacie XLSM, DOCM lub innym formacie obsługującym makra, przyczyną może być uszkodzenie oryginału albo jego zapisanie jako XLSX lub DOCX. Gdy problem dotyczy wielu plików, należy porównać ustawienia Centrum zaufania, wersję Microsoft Office oraz dostępność wymaganych bibliotek. Nie powinno się uruchamiać nieznanego makra przez globalne obniżenie zabezpieczeń, ponieważ kod VBA może wykonywać operacje na plikach, rejestrze systemu lub innych zasobach dostępnych dla użytkownika. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w tym diagnostyką problemów z pakietem biurowym, plikami obsługującymi makra oraz konfiguracją środowiska użytkownika. W ramach diagnostyki można ustalić, czy blokada wynika z ustawień bezpieczeństwa, pochodzenia dokumentu, nieprawidłowego formatu, błędu projektu VBA czy brakujących składników systemu. Po przywróceniu działania należy sprawdzić wszystkie kluczowe procedury, zwłaszcza makra uruchamiane przy otwieraniu pliku, operacje importu i eksportu danych oraz funkcje zależne od innych dokumentów lub katalogów. Test powinien obejmować także ponowne otwarcie dokumentu po zamknięciu aplikacji, aby potwierdzić, że rozwiązanie działa trwale, a nie tylko w bieżącej sesji. |