Makra osobiste to kod zapisany w prywatnym skoroszycie lub szablonie użytkownika, niezależnym od konkretnego dokumentu.
Gdzie zapisuje się makro osobiste
Makro osobiste to procedura automatyzująca pracę w arkuszu kalkulacyjnym, ale przechowywana poza konkretnym plikiem roboczym. W programie Microsoft Excel najczęściej znajduje się w ukrytym skoroszycie o nazwie PERSONAL.XLSB. Skoroszyt ten jest otwierany w tle podczas uruchamiania Excela, dlatego makra zapisane w jego modułach mogą być dostępne przy pracy z wieloma innymi skoroszytami. Nie oznacza to jednak, że kod staje się częścią każdego otwartego pliku. Procedura nadal należy do projektu VBA przechowywanego w skoroszycie osobistym.
Makro może być również zapisane w szablonie programu Excel, na przykład w pliku z rozszerzeniem .xltm. W takim przypadku kod jest związany z szablonem i może być używany w skoroszytach tworzonych na jego podstawie. Jest to inne rozwiązanie niż zapis w zwykłym pliku .xlsx, ponieważ format .xlsx nie przechowuje projektu VBA. Pliki zawierające makra używają między innymi rozszerzeń .xlsm, .xltm albo binarnego .xlsb, zależnie od rodzaju skoroszytu i sposobu jego zapisu.
Zakres działania i odwołania do skoroszytu
Makro osobiste jest przydatne wtedy, gdy ta sama czynność ma być wykonywana w wielu plikach, na przykład formatowanie tabel, czyszczenie powtarzalnych danych, przygotowanie wydruku albo zastosowanie ustalonego układu kolumn. Podczas rejestrowania makra w Excelu należy wybrać opcję zapisania go w „Osobistym skoroszycie makr”. Kod zostanie wtedy umieszczony w projekcie VBA skoroszytu osobistego, a nie w aktualnie edytowanym dokumencie.
Istotne jest rozróżnienie między aktywnym skoroszytem a skoroszytem, w którym znajduje się kod. Odwołanie takie jak ActiveWorkbook wskazuje plik aktualnie aktywny w interfejsie, natomiast ThisWorkbook oznacza skoroszyt zawierający wykonywany kod. W przypadku makra osobistego ThisWorkbook zwykle wskazuje PERSONAL.XLSB, a nie plik, który użytkownik chce zmodyfikować. Nieprawidłowe użycie tych obiektów może spowodować zmianę danych w niewłaściwym skoroszycie. Bezpieczniejszy kod powinien jasno określać, czy operacja dotyczy aktywnego dokumentu, wskazanej nazwy skoroszytu, czy konkretnego arkusza.
Podobne znaczenie ma odwołanie do arkusza. Konstrukcja ActiveSheet zależy od bieżącego stanu interfejsu i może wskazywać inny arkusz niż zakładany, jeżeli w trakcie działania makra użytkownik zmieni aktywne okno. Odwołania kwalifikowane, na przykład do konkretnego obiektu Workbook i Worksheet, ograniczają ryzyko przypadkowej modyfikacji niewłaściwego zakresu. Przy przenoszeniu makra osobistego między komputerami warto sprawdzić także nazwy arkuszy, ścieżki plików oraz dodatkowe odwołania projektu VBA.
Bezpieczeństwo, uruchamianie i kopia projektu VBA
Makra osobiste są wykonywane w środowisku VBA, dlatego podlegają ustawieniom zabezpieczeń makr programu Excel. Jeżeli projekt jest uszkodzony, zablokowany albo zapisany w lokalizacji objętej ograniczeniami, procedury mogą nie uruchomić się mimo prawidłowej składni. Excel może także wyświetlić ostrzeżenie dotyczące zawartości aktywnej. Samo włączenie makr nie jest metodą naprawy błędnego kodu; najpierw trzeba ustalić, czy problem dotyczy pliku, projektu VBA, ustawień zabezpieczeń, brakującego odwołania czy błędu wykonania.
Skoroszyt PERSONAL.XLSB może być ukryty w interfejsie Excela, ale nadal jest zwykłym plikiem przechowywanym w profilu użytkownika. Jego utrata może oznaczać zniknięcie wielu wcześniej zapisanych procedur. Przed reinstalacją pakietu biurowego, zmianą profilu systemowego albo przeniesieniem pracy na inny komputer warto wykonać kopię tego pliku. Należy zachować ostrożność przy kopiowaniu, ponieważ makra mogą zawierać odwołania do konkretnych folderów, nazw drukarek, dodatków lub bibliotek dostępnych tylko w pierwotnym środowisku.
Jeżeli Excel zgłasza błąd kompilacji, nie powinno się ograniczać do ponownego uruchamiania aplikacji. W edytorze Visual Basic for Applications można sprawdzić moduły, procedury, deklaracje oraz pozycję „Narzędzia” i „Odwołania”, gdzie nieprawidłowa lub brakująca biblioteka może być oznaczona jako MISSING. Błąd może pojawić się również po zmianie wersji Office albo po usunięciu dodatku, z którego korzystał kod. Naprawa wymaga wtedy ustalenia zależności i sprawdzenia działania kopii pliku, aby nie nadpisać jedynego zachowanego projektu.
Sprawdzenie makr osobistych w praktyce serwisowej
W diagnostyce problemu z makrem osobistym sprawdza się kolejno, czy istnieje plik PERSONAL.XLSB, czy Excel ładuje go podczas startu, czy projekt VBA jest dostępny oraz czy procedura pojawia się na liście makr. Następnie warto uruchomić prostą, niezmieniającą danych procedurę testową i oddzielnie sprawdzić makro wykonujące właściwą operację. Taki podział pozwala odróżnić problem z uruchamianiem projektu od błędu w logice procedury. Należy także zweryfikować, czy kod nie odwołuje się do nieistniejącego pliku, arkusza, zakresu lub dodatku.
Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów stacjonarnych PC i ich podzespołów, a przy problemach z makrami można przeprowadzić diagnostykę środowiska pracy oraz sprawdzić, czy przyczyną jest aplikacja, profil użytkownika, plik PERSONAL.XLSB lub konfiguracja systemu. W razie potrzeby analizuje się kopię pliku, ustawienia uruchamiania i komunikaty błędów, zachowując oryginalny skoroszyt jako materiał porównawczy. Wynik diagnostyki powinien wskazać, czy możliwe jest odtworzenie kodu, poprawienie odwołań, przywrócenie pliku z kopii lub ponowna konfiguracja makr w działającym środowisku.