Tworzenie makra w Excelu

Być może zdarzyło Ci się zobaczyć w Excelu plik, w którym kliknięcie jednego guzika powodowało falę zmian w arkuszu. Komórki zmieniały swoje zawartości, rzeczy działy się niesamowicie szybko i po chwili ukazywał się efekt finalny. To właśnie były makra w Excelu w działaniu.

Co to są makra w Excelu?

Makra to ala aplikacje, napisane w dedykowanym do tego języku — Visual Basic for Application (w skrócie VBA). Do utworzenia makra wystarczy dowolny program pakietu Office, a więc może je tworzyć również w Wordzie, PowerPointcie czy Outlooku. Wszystkie narzędzia, potrzebne do tworzenia makr, masz już zainstalowane. Aby uruchomić tzw. Edytor makr, w którym możesz je tworzyć, użyj ALT+F11 w dowolnej aplikacji Office. W tym blogpoście będziemy trzymać się tematu makra w Excelu.
vba_edytor_view

Co warto wiedzieć, zanim zaczniesz uczyć się tworzenia makra w Excelu?

Makra w Excelu pozwalają zdjąć większość ograniczeń, jakie nakładają na nas twórcy programu. Znając język VBA, możemy pisać własne rozwiązania, wliczając w to nawet budowanie własnych funkcji. Nie ma jednak tak dobrze — opcje fabryczne Excela działają znacznie szybciej niż makra. Naturalnie pojawia się zatem argument: zanim zaczniesz uczyć się tworzenia makr, warto dobrze poznać wbudowane opcje Excela. Znajomość VBA jest cenną kompetencją, bo pozwala używać programu znacznie szerzej, a sprytnie napisane makro oszczędza dziesiątki godzin pracy w programie Excel (czas pracy dla pracodawcy to koszty pensji, im więcej efektywnej pracy wykonamy w wymiarze etatu, tym cenniejszym ekonomicznie jesteśmy pracownikiem).

Nagrywanie a pisanie makra w Excelu — jakie są różnice?

Oprócz pisania, makra możesz również nagrywać. Tę opcję znajdziesz w każdej aplikacji pakietu Office. Nagrywanie to zapisywanie przez rejestrator makr naszych czynności po to, aby potem można je było odtworzyć (uruchomić makro), a więc aby program mógł wykonać te same czynności na nowych danych. W czasie nagrywania Excela sam tworzy kod, z którego później korzysta. Niestety kod taki nie jest zoptymalizowany i nie wszystkie czynności zostają nagrane, co jest argumentem za nauką tworzenia (albo chociaż edytowania) makr Excela w języku VBA. Zdecydowanie łatwiej jest też edytować kod makr, pobranych z sieci czy już działających w firmie, znając VBA.

Jak włączyć makra w Excelu?

Aby nagrać Twoje pierwsze makro, potrzebujesz dostać się do dodatkowej karty Excela — karty Developer (sposób włączania dla Exceli 2010 i nowszych):
1) kliknij Prawy Przycisk Myszy na wstążkę Excela
dostosuj_wstążke

2) wybierz Dostosuj wstążkę

3) po prawej stronie okna zaznacz Developer i kliknij ok

ustawienia_Deweloper

Od teraz masz dostęp do dodatkowej karty Developera, na której znajdziesz opcję nagrywania.

Jak nagrywać makra w Excelu?

Wybierz kartę Developer, a następnie Zarejestruj makro.
Twoim oczom ukarze się okno dialogowe, w którym musisz zdecydować:

rejestrowanie_makra

1) Nazwa makra: wpisz nazwę makra bez odstępów. Jeśli chcesz zaznaczyć podział na słowa, użyj znaku: '_’ . Możesz używać polskich znaków, ale nie jest to dobra praktyka

2) Jeśli makro będziesz przez Ciebie używane wielokrotnie w wielu plikach, możesz przypisać je do skrótu klawiszowego.UWAGA! Pamiętaj, żeby skrót ten nie był już zajęty. Tutaj znajdziesz listę skrótów Excela.

3) Wybierz miejsce przechowania makra.
Najpopularniejszym jest „Ten skoroszyt”, czyli makro zostanie zapisane w Twoim pliku i będzie można z niego korzystać tylko w nim.
Jeśli chcesz korzystać z makr w wielu plikach (najpewniej też przypiszesz mu skrót klawiszowy) użyj tu opcji „Skoroszyt makr osobistych”. Ta dziwna nazwa to nic innego jak plik, który po pierwszym nagraniu w nim makra, zostaje utworzony i stanowi miejsce depozytu wszystkich Twoich makr, które mają mieć zastosowanie w więcej niż jednym pliku.

4) Opis pozwala napisać kilka słów notatki o tym, jakie funkcje pełni makro.
Pozostaje wcisnąć OK, co spowoduje nagranie makra. Skąd wiedzieć, że ten proces trwa? W lewym, dolnym rogu okna zobaczysz symbol kwadratu (przerwania nagrania), podobny symbol zobaczysz w karcie Developer. Właśnie w niego musisz kliknąć, jeśli chcesz zatrzymać rejestrowanie makra.

makro_recording
Pozostaje zatem wykonanie czynności, które makro ma robić w Twoim imieniu i zakończenie pracy rejestratora.

Odwołanie względne i bezwzględne

Zaraz pod opcją rejestrowania makr są do wyboru opcje użycia odwołań względnych i bezwzględnych. Te pierwsze powodują, że gdy będziesz nagrywać kod, będzie on odwoływał się dokładnie do komórek, które klikniesz. Przykład: zacznij nagrywać kod, będąc w komórce C3 i kliknij komórkę C5, wlewając do niej następnie żółty kolor i zakończ rejestrację makra. Usuń następnie ręcznie wylany kolor i uruchom makro. Bez względu na to, w jakiej jesteś komórce, kolor zawsze zostanie wylany do komórki C5.

Rozważmy opcję z odwołaniami względnymi.
Zanim zaczniesz nagrywać makro, włącz „użyj odwołań względnych”. Ustawmy się znowu w komórce C3, następnie uruchamiamy rejestrator, klikamy C5 i wylewamy kolor, koniec nagrania. Zanim uruchomisz makro, ustaw się np. w komórce A2. Kod wyleje kolor do komórki A4. Dlaczego? Użyłeś odwołania względnego, które powiedziało Excelowi: wylej kolor do komórki, która jest o 2 niżej niż ta, w której jestem. To zasadnicza różnica, która bardzo przydaje się nie tylko przy rejestrowaniu, ale także przy pisaniu kodu w VBA.

Sposoby uruchamiania makra w Excelu

Aby uruchomić makra, możesz skorzystać z jednego z poniższych sposobów:
1. Przypisz makro do skrótu klawiszowego
2. Uruchom makro z menu Makra, karty Developer
3. Przypnij makro do paska Szybkiego Dostępu
4. Przypnij makro do dowolnego obiektu (np. autokształtu)
5. Utwórz swoją własną kartę na pasku narzędzi Excela i przypnij tam makra
6. Stwórz makro, które uruchomi się po konkretnym zdarzeniu (np. otwarcie pliku, wybranie odpowiedniego arkusza i inne)

Jak zapisać makra w Excelu?

Makra Excela nie mogą być przechowywane we wszystkich typach plików. Format .xlsx, który jest domyślnym formatem zapisu dla nowożytnych Exceli (od 2007 w górę), nie umożliwia przechowywanie makr w pliku. Jeśli chcesz je zatem zapisać, skorzystaj z formatu .xlsm lub .xlsb. W plikach tego typu możesz przechowywać makra. Wystarczy, że przy zapisie zmienisz rozszerzeniu zapisywanego rezultatu pracy i gotowe. Jeśli tego nie zrobisz, Excel zapyta Cię, czy mimo to dokonać zapisu z utratą makr. Wybierz mądrze odpowiedź 🙂

Jakie są rodzaje makra w Excelu?

Wyróżniam tutaj 4 rodzaje makr:
1) Makra podręczne — takie, które przypisujesz do skrótu klawiszowego i są dostępne we wszystkich plikach Excela na Twoim komputerze np. usuwanie pustych wierszy z pliku, ulubione formatowanie

2) Makra tworzące raporty to takie, które działają tylko w jednym pliku. Są stworzone po to, aby za ich pomoc wygenerować ściśle określony rezultat typu konkretny raport czy sformatowane w określony sposób dane wsadowe.

3) Makra uruchamiane jako zdarzenie. Zdarzeniem dla Excela jest np. otwarcie pliku, zaznaczenie komórki, użycie Prawego Przycisku Myszy. Takie makra również najczęściej są dostępne tylko w konkretnym pliku. Zabieg uruchamiania makra przy konkretnym zdarzeniu stosuje się przy rozbudowanych plikach-narzędziach albo jeśli chcesz, aby makro uruchomiło się od razu po otwarciu pliku (ze względów bezpieczeństwa użytkownik i tak musi wyrazić zgodę, aby to się stało).

4) Makra-formularze, czyli tzw. UserForm. To formularze, które możesz projektować przy pomocy Excela. Okna te są w pełni responsywne, przez co za ich pomocą możesz tworzyć złożone narzędzia.

user_form_example

Jak w praktyce można użyć makra w Excelu?

Zastosowania w zasadzie nie mają końca. W swojej pracy zawodowej spotykałem się z podręcznymi makrami, które przy pomocy jednego kliknięcia dostosowały format danych do takiego, który był akceptowany przez system ERP, do którego następnie dane miały być załadowane. Miałem też okazję pracować na w pełni funkcjonalnym systemie składania zamówień do dostawców i ich realizacji, opartego w 100% o VBA.
Po włączeniu pliku trzeba było się zalogować, wybrać kategorię według swoich uprawnień i dopiero wtedy mogło się dokonywać zmian. Na tym systemie jednocześnie pracowali zatrudnieni w czterech krajach. Jako inny przypadek podam makro jednej z betoniarni, dla której na początku swojej kariery z Excelem miałem okazję przygotowywać dokumentację kodu. Makro to było formularzem UserForm, za pomocą którego klient mógł wybrać ilość i rodzaj potrzebnego betonu, datę dostawy, sprawdzić wycenę, a nawet zdecydować czy betoniarka będzie umyta u niego na budowie, czy gdzieś indziej (co również wpływało na cenę). Jak widzisz mamy tu do czynienia z prostymi, ale i bardzo zaawansowanymi przykładami użycia makr Excela.

Bezpieczeństwo a makra w Excelu

Makra Excela mogą być niebezpieczne. Możesz za ich pomocą sterować programami pakietu Office, a więc nie jest problemem przy pomocy Excela wysłać maila z Outlooka. Warto znać kod VBA, aby kopiując makra z forum w Internecie wiedzieć, jakich efektów się spodziewać. Nie zaleca się otwierać plików z makrami z nieznanych źródeł, bo może czaić się tam niebezpieczeństwo. Pracuję z programem Excel już lata i nigdy nie natknąłem się na chociażby przykład złośliwego makra, ale to nie znaczy, że takie nie istnieją. Warto mieć to na uwadze, szczególnie gdy włączam pliki z sieci na komputerach firmowych.

Makra Excela i język VBA — czy warto się tego uczyć?

Omówiłem ten temat w 9 minut w jednym z odcinków Excellent Work Podcast. Znajdziesz go pod tym linkiem.
W skrócie warto nauczyć się VBA i makr, jeśli wiążesz swoją pracę z programami Office, w tym z Excelem. Ten język będzie jeszcze długo wspierany, a nawet jeśli kiedyś nastąpi jego zmiana, będzie Ci łatwiej nauczyć się kolejnego języka, niż uczyć nowego jako pierwszego. Nie można zapomnieć, że osoby z dobrą znajomością makr to nadal osoby poszukiwane na rynku pracy i znacznie odbiegające poziomem znajomości Excela od osób, które nie umieją programować w VBA.

Podsumowanie

Dla wielu nowych Excelowych adeptów, możliwości makr wydają się czymś bardzo trudnym i zaawansowanym. Da się nauczyć ich krok po korku, od podstaw po zaawansowane techniki i świetnie do tego sprawdzi się kurs Makra i VBA, który dla Ciebie stworzyłem. Nadal warto nauczyć się programowania w VBA, bo już dziś ułatwi i przyspieszy Twoją pracę, zwiększy Twoją wartość na rynku i ułatwi Ci naukę kolejnych języków, jeśli zajedzie taka potrzeba.

Owocnej nauki VBA i makr Excela,
Michał Kowalczyk

Kurs tworzenia makr

od podstaw do zaawansowania

Michał Kowalczyk

Jestem MVP Microsoftu. Jak mówią o mnie kursanci: jestem jedynym trenerem, który płynnie tłumaczy z Excelowego na nasze. Pomagam ludziom odmieniać ich kariery, ucząc jak skutecznie korzystać z programu Excel i narzędzi, potrzebnych w pracy biurowej. Uświadamiam przedsiębiorców o wadze liczb w biznesie, aby mogli zwiększać rentowność firm. Na Facebooku uczy się ze mną ponad 40 000 osób, na TikToku 100 000 osób.

Zapisz się, aby nauczyć się Excela!