Czym jest VBA?
VBA to skrót od Visual Basic for Applications. W tym artykule będę zamiennie używał zarówno wersji skróconej, jak i rozszerzonej. Excel VBA to język programowania firmy Microsoft dla programu Excel, ale i nie tylko, VBA wykorzystywany jest również w wielu innych programach z pakietu Microsoft Office, takich jak Word, PowerPoint czy Outlook. Wszystkie programy pakietu Office mają wspólny język programowania. Język VBA jest częścią zaawansowanego języka programowania, ale nie musisz znać języka VBA ani mieć umiejętności programowania, gdyż Excel umożliwia również napisanie własnego kodu w tym języku za pomocą rejestratora makr.
Dlaczego warto korzystać z VBA w Excel?
Chociaż użytkownicy nie mogą bezpośrednio manipulować głównym oprogramowaniem Excel za pomocą VBA, mogą jednak opanować sztukę tworzenia makr, aby zoptymalizować swój czas w Excelu. Istnieją dwa sposoby tworzenia makr w programie Excel.
Pierwsza metoda polega na użyciu rejestratora makr. Po aktywacji rejestratora Excel zarejestruje wszystkie kroki użytkownika i zapisze je jako „proces” znanym właśnie jako makro. Po zamknięciu rejestratora przez użytkownika makro to jest zapisywane i można je przypisać do przycisku, który po kliknięciu ponownie uruchomi dokładnie ten sam proces. Ta metoda jest stosunkowo prosta i nie wymaga wrodzonej znajomości kodu VBA. Ta metoda sprawdzi się w przypadku prostych procesów.
Jednak wadą tej metody jest to, że nie jest bardzo konfigurowalna, a makro dokładnie naśladuje dane wejściowe użytkownika. Domyślnie makra rejestratora używają również odwołań bezwzględnych zamiast odwołań względnych. Oznacza to, że makra rejestrowane w ten sposób są bardzo trudne w obsłudze ze zmiennymi i „inteligentnymi” procesami.
Rejestrator makr
Rejestrator makr pozwala na zautomatyzowanie powtarzalnych czynności, możesz zarejestrować makro, korzystając z Rejestratora makr w programie Excel. Załóżmy, że masz w swoich arkuszach daty w różnych formatach i chcesz zastosować do nich jeden spójny format. Do wykonania tego zadania idealnie nadaje się rejestrator makr. Możesz zarejestrować makro podczas stosowania odpowiedniego formatu, a następnie odtworzyć je, gdy będzie to znów potrzebne.
Podczas rejestrowania makra Rejestrator makr zapisuje wszystkie kroki w postaci kodu języka VBA. Te kroki to na przykład wypisywanie tekstu lub liczb w komórkach, lub zakresach komórek, formatowanie komórek, wierszy lub kolumn, a nawet importowanie danych ze źródła zewnętrznego.
Warto pamiętać, że gdy rejestrujesz makro, Rejestrator makr zapisuje niemal wszystkie wykonywane czynności. Zatem jeśli pomylisz się, wykonując rejestrowaną sekwencję czynności, na przykład klikniesz niewłaściwy przycisk, Rejestrator makr zarejestruje tę pomyłkę. Rozwiązaniem problemu może być ponowne zarejestrowanie całej sekwencji lub zmodyfikowanie kodu VBA. Dlatego zawsze, gdy chcesz zarejestrować sekwencję czynności, warto najpierw dobrze zaznajomić się z całym procesem. Im sprawniej wykonasz sekwencję podczas rejestrowania, tym wydajniej będzie działać utworzone makro.
Narzędzia makr i języka VBA znajdują się na karcie Deweloper, która jest domyślnie ukryta, dlatego pierwszym krokiem jest włączenie tej karty.
Aktywacja karty Deweloper
Aby aktywować kartę Deweloper należy wejść na kartę Plik, wybrać opcje i z opcji Dostosowywanie wstążki wybrać, zaznaczyć kartę Deweloper i zatwierdzić OK.
Aby zarejestrować makro, na otwartej przed momentem karcie Deweloper w grupie Kod kliknij przycisk Zarejestruj makro.
Przykład pierwszego rejestrowanego makra może wyglądać jak ten poniżej. Nadajmy naszemu makru odpowiednią nazwę skrót klawiszowy dzięki któremu będzie go można w łatwy sposób wywołać oraz krótki opis czego dotyczy. W naszym przypadku chcemy stworzyć takie makro, które każdorazowo odpalane będzie zmieniało format daty na właściwy.
Problemem w naszym przypadku jest różny format dat w kolumnie A.
Klikając przycisk rejestruj makro, zaznaczając wszystkie komórki w kolumnie i zmieniając im format na właściwy oraz zatrzymanie makra spowoduje nagranie sekwencji zmiany wszystkich komórek z kolumny w przyszłości.
Jak rozpocząć przygodę z pisaniem makr w VBA?
Aby uzyskać dostęp do okna Visual Basic for application, naciśnij Alt + F11 w dowolnym programie pakietu Office. Po prawidłowym wykonaniu otworzy się okno z drzewem struktury plików w lewym górnym rogu, właściwościami w lewym dolnym rogu, okienkiem debugowania w prawym dolnym i prawym dolnym rogu oraz sekcją kodowania, która zajmuje większość ekranu w środek i prawy górny róg. Na początku może się to wydawać przytłaczające, ale w rzeczywistości jest to prostsze, niż się wydaje.
Jest też drugi sposób wywołania tego samego okna, wymaga ono jednak aktywowanie okna Deweloper na kartach programu opisanego kilka akapitów powyżej. Po zatwierdzeniu naszym oczom ukażę się brakująca karta Deweloper i przycisk Visual Basic które zaprowadzi nas w te samo miejsce co skrót klawiszowy Alt + F11
Dodawanie modułu w oknie VBA
Żeby rozpocząć pracę i stworzyć pierwsze makro należy skorzystać z przycisku Insert, a następnie Module. Po utworzeniu nowego modułu mamy pełne pole do popisu. Pierwszą rzeczą o jakiej należy pamiętać, to to, że każde napisane makro musi znajdować się pomiędzy klauzulami Sub i End Sub. Przykład prostej procedury może wyglądać jak ten poniżej.
Procedura wyświetla w oknie komunikat „Cześć”.
Przez większość czasu użytkownik będzie pracował w sekcji kodowania w sekcji Modules i temu będą przeznaczone kolejne wpisy. Sekcja struktury pliku służy tylko do tworzenia nowego pliku makr. Sekcja właściwości w lewym dolnym rogu będzie używana tylko w przypadku bardziej zaawansowanych makr, które używają UserForms do tworzenia interfejsów graficznych dla makra.
Sekcja kodowania to miejsce, w którym odbywa się większość, jeśli nie całość, kodowania. Tutaj użytkownik będzie tworzył, kodował i zapisywał makra. Po napisaniu i zapisaniu kodu makra można go następnie dołączyć do określonych wyzwalaczy w modelu Excel. Makro można aktywować, naciskając określony przycisk w arkuszu lub na przykład po zmodyfikowaniu niektórych komórek. Najłatwiejszym sposobem zaimplementowania makra jest dołączenie go do przycisku. A czy Ty używasz w swoich plikach rejestratora makr lub piszesz swoje makra w oknie edycji? Koniecznie daj znać w komentarzu!