06 — Przypisanie makra do przycisku

Tym razem nagramy odrobinę bardziej skomplikowane makro. Bardziej skomplikowany będzie kod (omówiony w następnym odcinku), bo to co zrobimy będzie zwykłym formatowaniem komórki. Ważne dla nas będzie też nowy sposób uruchamiania makra, a mianowicie przypisanie go do „przycisku”, obrazka itp.

Nasze makro ma po prostu formatować komórkę w specyficzny sposób. Ważne na początek zaznaczymy sobie tylko pojedynczą komórkę z liczbą.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 01

Następnie będziemy chcieli zmienić kilka opcji formatowania tej komórki, tylko pamiętaj najpierw włączyć nagrywanie makra. Nazwiemy je sobie po prostu Formatowanie. Po kliknięciu przycisku OK naciśnij od razu Ctrl + 1, żeby przejść do okna formatowania komórek. Na zakładce liczby ustaw formatowanie walutowe:

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 02

Na zakładce Wyrównanie zmień tylko wyrównanie w poziomie na Do środka:

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 03

Na zakładce czcionka zmniejsz rozmiar czcionki na 9 i styl czcionki na pogrubiony.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 04

Kolejna zakładka to Obramowanie. Tutaj ustaw jakiś styl przerywanej linii i nałóż ją na Kontur.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 05

Zostaje jeszcze zakładka Wypełnienie, gdzie wybierzemy jeden z kolorów motywu.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 06

Teraz zatwierdź zmiany przyciskiem OK i wyłącz rejestrowanie makra. Zaznaczona komórka powinna być już odpowiednio sformatowana teraz chcemy przypisać nasze makro do „przycisku”. Nie będziemy patrzeć w ogóle na jego kod.

Najpierw musimy stworzyć „przycisk” to może być dowolny kształt z karty wstawianie, ale najbardziej przypomina przycisk zaokrąglony prostokąt.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 07

Po tym jak wstawisz kształt możesz mu dodać tekst i zmienić mu formatowanie według swojego uznania. Wystarczy, że zaznaczysz kształt i zobaczysz jakie masz możliwości na karcie Formatowanie.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 08

Teraz najważniejszy dla nas moment – przypisanie makra do „przycisku”. Wystarczy, że klikniesz na niego prawym przyciskiem myszy i z podręcznego menu wybierzemy polecenie Przypisz makro.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 09

Później musisz tylko wybrać makro, które chcesz przypisać i zatwierdzić to przyciskiem OK (w zależności od ilości otwartych plików, możesz zobaczyć różną ilość makr i plików).

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 10

Teraz wystarczy, że zaznaczysz kilka komórek powiedzmy zakres B5:B10 i klikniesz w przycisk (jak najedziesz na niego myszką kształt kursora się zmieni).

Możesz teraz zobaczyć, że przerywane obramowanie nie znajduje się pomiędzy komórkami.

Wstęp do makr 06 - Nagranie makra formatującego komórkę i przypisanie go do przycisku 11

Jest to specjalny „błąd”, który będziemy chcieli poprawić w następnym odcinku, na razie możemy się cieszyć J że udało się nam przypisać makro do „przycisku”, czyli kształtu. Możesz też przypisać makro do wstawionego obrazu i większości obiektów, które tworzysz w Excelu.

P.S. Pamiętaj, że makra nie możesz cofnąć – czyści ono całkiem też bufor wszystkich operacji cofania dlatego pamiętaj o tym i twórz kopie zapasowe swoich danych, gdy tworzysz makra.

Chcesz ze mną poznać możliwości VBA? Zobacz kiedy planowana jest następna edycja 30dniowego kursu online:
http://excelw30dni.pl/kategoria-produktu/szkolenia-vba/

Pozdrawiam
Adam Kopeć
Miłośnik Excela

05 — Odwołania względne w makrach

Nagraliśmy już pierwsze makro i zobaczyliśmy jego kod. Teraz chcemy zobaczyć różnicę w zarejestrowanym kodzie, gdy będziemy zatwierdzać funkcję DZIŚ tylko Enterem. Dodatkowo poznamy różnicę w zapisie rejestrowanego makra, gdy są wyłączone odwołania względny i gdy są włączone.

Wciąż nagrywamy proste makra, bo dalej skupiamy się na funkcjonalnościach J Wciąż wstawiamy funkcję DZIŚ tylko zatwierdzamy ją Enterem (Załóżmy, że wstawimy ją do komórki A4 i mamy wyłączone odwołanie względne). Powiedzmy, że będzie się nazywać Dzisiaj2 i ponownie zapisujemy ją do skoroszytu makr osobisty. Dołożymy nawet ponownie skrót klawiszowy Ctrl + Shift + D, ale tylko po to, żeby zobaczyć komunikat Excela o tym, że taki skrót został już przypisany do innego makra.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 01

Musimy usunąć skrót (skasować literę D) i nagrać opisane wcześniej proste makro.

Jeśli nagrywałeś makro zaraz po poprzednim, to powinno się zapisać do tego samego modułu co poprzednio (Module1), pod wcześniejszym makrem, ale jeśli w między czasie zdążyłeś zamknąć i otworzyć Excela to rejestrator zapisze makro w nowym module.

W kodzie znów jest dużo niepotrzebnego nam komentarzu, więc możemy go usunąć.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 02

Zmienił się też wykonywany kod:

Sub Dzisiaj2()
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("A5").Select
End Sub

Ponownie powtórzę to, że jeśli znasz angielski będzie Ci łatwiej go zrozumieć. Teraz zamiast słowa Selection jest ActiveCell, czyli funkcja TODAY, będzie wstawiana tylko do pojedynczej aktywnej komórki, nawet jeśli zaznaczysz większy zakres danych (możesz sobie to później przetestować).

Pojawiła się też dodatkowa linijka:
Range("A5").Select
Łatwo się domyśleć, że chodzi tu o zaznaczenie (Select) komórki A5. Jest wykorzystana funkcja Range, która służy w VBA do zaznaczania pojedynczych komórek, a także zakresów. Ważne jest to, że ponieważ mieliśmy wyłączone odwołania względne, ta linijka zapisała się dokładnie tak, czyli nie ważne, która komórka będzie aktywna, po wpisaniu w nią funkcji DZIŚ, Excel przejdzie zawsze do komórki A5.

Ponieważ nie dołożyliśmy skrótu klawiszowego do naszego makra musimy poznać inny sposób na jego uruchomienie. Kolejną możliwością jest użycie polecenia Wyświetl makra (skrót klawiszowy do niego do Alt + F8).

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 03

Po jego kliknięciu otworzy się okno, gdzie zobaczysz wszystkie makra z otwartych plików.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 04

Jak do tej pory nagraliśmy tylko dwa makra i oba je widać w tym oknie. Ponieważ nie są to makra z aktywnego pliku, więc dodatkowo przed swoją nazwą mają również nazwę pliku, w którym się znajdują i wykrzyknik.

Są tu dostępne przyciski:

  • Uruchom, to z niego za chwilę skorzystamy,
  • Wkrocz, do uruchamiania makra krok po kroku, o tym w kolejnym wideo,
  • Edycja, przeskoczysz dzięki niemu od razu do kodu danego makra,
  • Usuń usuwania kod makra z modułu.
  • Opcje, pozwala zmieniać podstawowe opcje makra, m.in. skrót klawiszowy do niego przypisany – o tym za chwilę

Teraz możesz przetestować to makro naciskając przycisk Uruchom, gdy masz zaznaczoną pojedynczą komórkę i kilka komórek.

Wniosek jaki powinieneś wyciągnąć z tego makra jest taki, że ma znaczenie jak zatwierdzasz wpisane wartości i funkcje, bo rejestrator będzie zapisywał inny kod.

Teraz potrzebujemy nagrać jeszcze jedno makro, analogiczne jak to przed chwilą (w komórce A6), tylko z włączonymi odwołaniami względnymi — wystarczy, że raz klikniesz w to polecenie na karcie Deweloper.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 05

Tym razem makro nazwiemy Dzisiaj3 i zapiszemy je w aktualnym pliku. Pamiętaj o wyłączeniu makra. Zanim przejdziemy do kodu VBA zerkniemy co wyświetla polecenie Wyświetl Makra (Alt + F8)

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 06

Tym razem jedno makro jest bez nazwy pliku, bo znajduje się w aktywnym pliku. Dodatkowo na obrazie powyżej jest rozwinięta lista możliwości skąd mają być wyświetlane makra.

Teraz dla makra Dzisiaj (pierwszego, które nagraliśmy) kliknij przycisk Opcje. Najpierw musisz kliknąć na nazwę makra, a dopiero potem na przycisk Opcje. Otworzy się okno, w którym możesz zmienić skrót klawiszowy do makra i ewentualnie jego Opis, ale to też możesz zrobić jako komentarz w kodzie. Nie jest już nam potrzebny skrót do pierwszego makra, więc usuńmy stąd literę, a następnie sprawdź, że uruchamianie makra Dzisiaj3 skutkuje wpisaniem funkcji DZIŚ w aktywną komórkę i przejście do komórki poniżej. Zobaczmy teraz kod makra. Jeśli będzie Ci trudno odnaleźć moduł w aktywnym pliku, możesz skorzystać z przycisku Edycja w oknie Makr (Alt + F8).

Sub Dzisiaj2()
ActiveCell.FormulaR1C1 = "=TODAY()"
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Pomijając komentarz pierwsza linijka kodu jest taka sama jak w drugim makrze za to zmieniła się druga linijka – to ona odpowiada za przesunięcie zaznaczonej komórki, po wpisaniu funkcji TODAY. Najlepiej czytać ją krok po kroku, czyli przez poszczególne kroki.

Na początek jest aktywna komórka (ActiveCell). Następnie jest funkcja Offset, która zapewnia przesunięcie o ilość wpisanych wierszy (1) I kolumn (0). Kolejny punkt może być mylący, bo poznałeś już funkcję Range i służyła ona do zaznaczenia konkretnej komórki, ale w tej sytuacji nie chodzi o zaznaczenie komórki A1, tylko obszaru równego rozmiarowi komórce A1. Czyli jeśli byłby to większy obszar, to więcej komórek zostałoby zaznaczonych (Select).

Poznamy tutaj jeszcze jeden sposób na uruchomienie makra. Jeśli kursor znajduje się w kodzie makra, to możesz nacisnąć klawisz F5 lub przycisk play (patrz rysunek poniżej), żeby uruchomić makro.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 07

Na koniec pomówimy jeszcze chwilę o strukturze obiektowej w kodzie VBA. W VBA jest wiele obiektów. Przykładowym obiektem może być arkusz i komórka w arkuszu. Każdy taki obiekt, często ma też obiekty pod sobą, np. komórka arkusza jest podobiektem obiektu arkusz J

Jeśli w edytorze VBA zaczniesz pisać np.: funkcję Range("A1"). (ważna jest ta kropka na końcu) to edytor VBA powinien Ci zacząć podpowiadać dalszy kod.

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 08

Przy niektórych pozycjach zobaczysz niejako zielone ruchome pudełko (metody obiektu), a przy niektórych palec wskazujący na tekst (właściwości obiektu). Metody są bardziej związane z wykonywaniem czynności, a wartości przeważnie odczytujesz albo zmieniasz. Może trochę Ci pomoże zrozumieć to obrazek na arkuszu Budzik

Wstęp do makr 05 - Nagrywanie prostych makr bez i z odwołaniami względnymi 09

Dla budzika godzina to wartość, a Nastaw budzi i Nakręć to metody. Spokojnie tu dopiero zaznaczamy temat i na początku wystarczy, że będziesz wiedział, że istnieje taki podział. Że obiekty, często mogę mieć w sobie mniejsze obiekty i że przeważnie edytor VBA będzie Ci podpowiadał co może zrobić z danym obiektem (metody) lub jakie wartości możesz odczytać, jeśli po nim napiszesz kropkę.
Pozdrawiam
Adam Kopeć
Miłośnik Excela

04 — Gdzie mogę znaleźć kod mojego makra

Nagraliśmy pierwsze makro i sprawdziliśmy, że możemy je uruchomić za pomocą skrótu klawiszowego, ale gdzie ono jest zapisane? Jak wygląda?

Musimy przejść do kodu VBA. Możesz to zrobić z karty Deweloper wykorzystując polecenie Visual Basic

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 01

albo wykorzystując skrót klawiszowy Alt + F11 (ten skrót pozwala Ci przeskakiwać pomiędzy Excelem, a edytorem kodu VBA).

Po kliknięciu w polecenie Visual Basic w najgorszej sytuacji zobaczysz niemal całkiem szare okno.

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 02

Przydadzą się w nim przynajmniej jeszcze dwa dodatkowe okna, dlatego rozwiń menu View i wybierz pozycję Project Explorer (ewentualny skrót klawiszowy do jego włączenie to Ctrl + R).

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 03

Ważna uwaga – nie ważne jaką wersję językową Excela masz. Edytor VBA będzie zawsze po angielsku, łącznie ze składnią funkcji i liczb, ale o tym w kolejnych filmach.

Teraz w edytorze VBA widzieć też będziesz okno Project Explorera, gdzie zobaczysz wszystkie otwarte projekty (pliki), z ich podziałem na arkusze, moduły i inne obiekty plików. Powinieneś widzieć skoroszyt makr osobistych (PERSONAL.XLSB) i przynajmniej jeden otwarty plik na, którym pracujesz. U mnie jest to Wstęp do makr 04 – Gdzie…

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 04

Kolejnym oknem, które Ci się przyda jest Properties Window — znów otwierasz menu View. Możesz również użyć skrótu klawiszowego F4 do jego włączenia.

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 05

Edytor VBA wizualnie nie zmienił się prawie wcale od Excela 2003, a może i wcześniej, dlatego jest w nim zachowane "klasyczne" menu.

Properties Window może bardzo najść na Project Explorer. W takiej sytuacji będziesz musiał zmodyfikować rozmiar poszczególnych elementów edytora VBA, żeby odpowiadał Twoim potrzebom.

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 06

Teraz możemy odszukać moduł (tak nazywa się obiekt, w którym rejestrator makr zapisuje kod VBA), w którym odnajdziemy zarejestrowany przez nas kod VBA. Znajduje się on w skoroszycie makr osobistych w katalogu Modules. Możliwe, że będziesz musiał go rozwinąć klikając w znak plusa obok niego, żeby rozwinąć całą jego zawartość. Ponieważ powinno to być Twoje pierwsze nagrane makro, więc powinieneś mieć tylko pojedynczy moduł – Module1. Jeśli klikniesz w niego dwukrotnie otworzy się.

Wstęp do makr 04 - Gdzie mogę znaleźć kod mojego makra 07

Nareszcie możesz zobaczyć kod, który zarejestrowałeś J. Nie jest go dużo, ale tak jak wspominałem – chodzi nam w tym momencie przede wszystkim o poznanie funkcjonalności makr i kodu VBA, a dopiero później zaczniemy nagrywać trudniejsze makra.

Standardowo możesz poszczególne elementy edytora VBA włączać, wyłączać, maksymalizować, minimalizować i zmieniać rozmiary. Wszystko po to, żeby wygodniej pracowało Ci się kodem VBA.

Przyszła pora na szybką analizę kodu.
Sub Dzisiaj()
'
' Dzisiaj Makro
'
' Klawisz skrótu: Ctrl+Shift+D
'
Selection.FormulaR1C1 = "=TODAY()"
End Sub

Słowo kluczowe Sub oznacza początek makra. Później masz nazwę makra, którą nadałeś (moje nazywa się Dzisiaj). Następnie jest dużo linijek na zielono – to jest komentarz. W kodzie VBA komentarz rozpoczyna się od pojedynczego znaku cudzysłowu i ciągnie się do końca linii, czyli możesz na raz zakomentować tylko jedną linijkę kodu, ale możesz to nawet zrobić po kodzie, który ma zostać uruchomiony.

Mimo, że w komentarzu znajduje się skrót klawiszowy, to zmiana go nie zmieni faktycznego sposobu uruchamiania makra. Jest on tu tylko podany informacyjnie.

Na końcu kodu są słowa kluczowe kończące makro End Sub, a jedyną linijką faktycznie uruchamianego kodu jest: Selection.FormulaR1C1 = "=TODAY()".

Jak już wspominałem w edytorze VBA wszystko jest w nim po angielsku – nazwy funkcji też. Dlatego zamiast wpisywanej przez nas funkcji DZIŚ została zapisana funkcja TODAY.

Ważna jest też tutaj struktura obiektowa: Selection.FormulaR1C1, czyli czytając po angielsku na zaznaczeniu (Selection) przechodzimy do (znak kropki) do formuły (FormulaR1C1) na tym zaznaczeniu. Spokojnie odrobina wprawy i taka składnia stanie się dla Ciebie naturalna. Po prostu VBA jest językiem obiektowym, a każdy obiekt ma swoje właściwości itp. Na razie wystarczy o tym informacji.

Jeśli znasz angielski zrozumienie tego kodu (i przyszłych), będzie dla Ciebie dużo prostsze. To, że edytor VBA zapisał wpisywanie wartości na zaznaczeniu, a nie konkretnej, czy aktywnej komórce zawdzięczamy temu, że wykorzystaliśmy skrót klawiszowy Ctrl + Enter.

Jak wyglądałby kod, gdybyś funkcję DZIŚ zatwierdził zwykłym Enterem? Odpowiedź w następnym wideo 😉

P.S. Ponieważ komentarze w tym kodzie są nam zbędne możesz je usunąć.

Pozdrawiam
Adam Kopeć
Miłośnik Excela

03 — Nagranie pierwszego makra

Przyszła wreszcie pora na nagranie pierwszego makra. To będzie bardzo proste makro, bo chcemy przy jego okazji poznać całą procedurę nagrywania makr, a mniej skupiać się na tym co będzie robiło nasze makro.
Nagramy makro, gdzie w komórkę A2 wpiszemy funkcję DZIŚ i zatwierdzimy ją kombinacją klawiszy Ctrl + Enter. Ważne jest, żebyś przed włączeniem nagrywania makr
Wstęp do makr 03 - Nagranie pierwszego makra 01
miał już zaznaczoną komórkę A2.

Włączyć nagrywanie makr możesz również z paska informacyjnego.

Wstęp do makr 03 - Nagranie pierwszego makra 02

Powinieneś już być gotowy do nagrywania makr, więc kliknij w polecenie Zarejestruj makro. Otworzy Ci się okno rejestrowania makr, gdzie w pierwszej kolejności będziesz musiał wpisać nazwę makra.

Wstęp do makr 03 - Nagranie pierwszego makra 03

Excel wpisuje domyślne wartości, więc my nazwijmy sobie nasze makro Dzisiaj. Kolejnym punktem jest decyzja, czy chcesz przypisać do makra skrót klawiszowy czy nie. Domyślnie każdy skrót klawiszowy do makra musi zawierać klawisz Ctrl. Jeśli pole pozostawisz puste to do makra nie będzie prowadził żaden skrót klawiszowy. Istotne jest, że jeśli przypiszesz do makra skrót klawiszowy, który już istnieje w Excelu, to makro będzie miało priorytet, czyli jeśli go naciśniesz to uruchomisz makro (jeśli tylko otwarty jest plik z tym makrem), a nie polecenie Excela.

Do skrótów klawiszowych makr możesz dodać jeszcze klawisz Shift musisz tylko przytrzymać go w trakcie wpisywania znaku w pole skrótu klawiszowego.

Wstęp do makr 03 - Nagranie pierwszego makra 04

Teraz najtrudniejsza decyzja – z listy rozwijanej wybierasz, gdzie chcesz, żeby zostało zapisane Twoje makro. Istotny jest wybór pomiędzy Aktualnym/Tym skoroszytem, a Skoroszytem makr osobistych.

Jeśli zapiszesz makro w aktualnym pliku, to będziesz miał do niego dostęp za każdym razem, kiedy ten plik będzie otwarty, analogicznie wygląda to ze skoroszytem makr osobistych, tylko, że skoroszyt makr osobistych, po nagraniu pierwszego makra, będzie otwierał się automatycznie razem z każdym uruchomieniem Excela (będzie ukryty, ale będziesz miał dostęp do makr w nim się znajdujących).

Ponieważ skoroszyt makr osobistych jest zapisany w domyślnej lokalizacji i uruchamia się automatycznie, to jeśli zależy Ci, żeby konkretne makro było dostępne na komputerze, na którym nagrywasz makro, to lepiej zapisać je właśnie do skoroszytu makr osobistych, ale jeśli zależy Ci na przenoszeniu makra na inne komputery, to lepiej nagrać je w aktualnym pliku, który łatwiej będzie przenieść na inne komputery.

My nasze pierwsze makro nagramy do skoroszytu makr osobistych.

Wstęp do makr 03 - Nagranie pierwszego makra 05

Pozostaje jeszcze pole Opis, które pozostawimy puste, bo to tylko dodatkowa informacje/komentarz co makro robi, a to wiemy po samym tytule.
Teraz naciskasz przycisk OK i właśnie włączyło się rejestrowanie makr. Zmienił się kształt polecenia na karcie Deweloper

Wstęp do makr 03 - Nagranie pierwszego makra 06

oraz w pasku informacyjnym

Wstęp do makr 03 - Nagranie pierwszego makra 07

Uważaj, bo wszystko co zrobisz z i na arkuszu Excela zostanie zarejestrowane dlatego wykonaj tylko te kroki:

1) Wpisujesz funkcję =DZIŚ()
2) Zatwierdzasz ją kombinacją klawiszy Ctrl + Enter
3) Wyłącz rejestrowanie makra, albo przyciskiem z karty Deweloper albo z paska informacyjnego, jak Ci wygodniej.

Ostatni punkt jest ważny, bo jeśli o nim zapomnisz, to Excel dalej będzie rejestrował makro, a tym samym zapisywał nowy kod, który nie będzie Ci potrzebny i pewnie będzie powodował błędy.

Jeśli wyłączyłeś rejestrację makra, to możesz sprawdzić, czy działa do niego skrót klawiszowy. Zaznacz pojedynczą komórkę i naciśnij skrót klawiszowy Ctrl + Shift + D, a następnie zaznacz zakres kilku komórek i ponownie wykorzystaj skrót klawiszowy, który przypisałeś do makra. Powinna się wpisać funkcja DZIŚ we wszystkich zaznaczonych komórkach, jeśli postępowałeś dokładnie według punktów.

Wstęp do makr 03 - Nagranie pierwszego makra 08

W następnej części zobaczymy, gdzie dokładnie został zapisany kod i jak wygląda 😉

Pozdrawiam
Adam Kopeć
Miłośnik Excela

02 — Bezpieczeństwo makr i wstęp do odwołań względnych w makrach

Zanim jeszcze przejdziemy do nagrania naszego pierwszego makra, za pomocą rejestratora makr

Wstęp do makr 02 - Bezpieczeństwo makr i wstęp do odwołań względnych w makrach 01

potrzebujemy jeszcze powiedzieć o bezpieczeństwie makr i wspomnieć o odwołaniach względnych i bezwzględnych podczas rejestrowania makr.

Temat odwołań względnych i bezwzględnych powinien być Ci znany z tworzenia formuł, gdzie odpowiednie odwołania do komórek przenosiły się wraz z kopiowaniem formuł (względne) i inne, które się nie przenosiły (bezwzględne). Przy rejestrowaniu makr możesz włączyć używanie odwołań względnych.

Wstęp do makr 02 - Bezpieczeństwo makr i wstęp do odwołań względnych w makrach 02

Oznacza to, że jeśli zmienisz zaznaczoną komórkę z A1 na B5, to Excel to zarejestruje jako przesunięcie o jedną komórkę w prawo i cztery w dół.

Jeśli odwołania względne byłyby wyłączone (stan domyślny), to powyższa operacja zostałaby zarejestrowana jako zaznaczenie komórki B5 nie ważne, jaka komórka (komórki) była wcześniej zaznaczona.

Kiedy odwołania względne są włączone podświetlają się na kolor, który zmienia się wraz z wersją Excela.

Kolejnym istotnym ustawieniem jest bezpieczeństwo makr.

Wstęp do makr 02 - Bezpieczeństwo makr i wstęp do odwołań względnych w makrach 03

Jeśli klikniesz w to polecenie otworzy się okno, gdzie będziesz miał do wyboru jedną z czterech opcji:

Wstęp do makr 02 - Bezpieczeństwo makr i wstęp do odwołań względnych w makrach 04

Druga od góry jest opcją domyślną, ale u mnie jest zaznaczona ta na samym dole (niezalecana), ponieważ inne opcje wymuszają na Tobie włączanie obsługi makr za każdym razem, gdy otworzysz plik, w którym jest zapisane makro.

Wstęp do makr 02 - Bezpieczeństwo makr i wstęp do odwołań względnych w makrach 05

Jeśli zamkniesz powyższy komunikat x, to makra nie będą działały i będziesz musiał zamknąć i ponownie otworzyć plik, żeby tym razem włączyć makra (nacisnąć przycisk w komunikacie). Ta operacje, przy nastym otwieraniu pliku z makrem zaczyna być irytująca, dlatego ustawiłem opcję, że makra zawsze są włączone, mimo, że jest to niezalecane ze względu na „niebezpieczny kod”.

Osobiście jeszcze na taki kod nie natrafiłem. Niektórzy autorzy książek, z których uczyłem się VBA mówią, że też z takim kodem się nie spotkali. Największym niebezpieczeństwem z kodem VBA jest to, że wykonany kod nadpisze dane, bo makr nie da się cofnąć (Ctrl + Z), całkowicie czyszczą bufor opcji cofnij. Dlatego ważne jest, żebyś tworzył sobie kopie danych/pliku, w którym tworzysz makra.

Jeśli jednak uruchomisz makro, które zniszczy Twoje dane to masz jeszcze szansę zamknąć plik bez zapisywania. Jeśli jednak to się nie uda to będziesz miał nauczkę na przyszłość L.

 

Pozdrawiam
Adam Kopeć
Miłośnik Excela

01 — Odrobina teorii i włączanie karty Deweloper

Chcesz zacząć pracować z kodem VBA i makrami, żeby zautomatyzować pewne czynności w Excelu lub zrobić rzeczy, które inaczej nie byłyby możliwe w Excelu? Na początek przyda Ci się odrobina teorii.

W większości sytuacji pojęcie makro jest używane jako synonim kodu VBA (Visual Basic for Application), ale czasami słowem makro określamy precyzyjnie kod, który został zarejestrowany za pomocą rejestratora makr z karty Deweloper (jak ją włączyć na koniec tego wpisu). Czyli makro, to napisany kod, który uruchamia komendy/funkcjonalności w Excelu niejako zza kulis arkusza Excela.

Osoby, które zaczynają się uczyć VBA często dobrze znają Excela, dlatego najprościej im się uczyć pisania kodu VBA przez nagrywania makr (zwłaszcza w sytuacjach, gdy chcą zautomatyzować coś co wcześniej systematycznie musieli robić ręcznie).

Kiedy naciśniesz przycisk Zarejestruj makro „włączysz kamerę”, która będzie rejestrowała to co robisz w Excelu, a następnie najlepiej jak potrafiła tłumaczyła to na kod VBA.

Ważne, że kod VBA możesz zarejestrować w  dowolnym pliku Excela, ale nie w każdym możesz  go zapisać. Od Excela 2007 zostało wprowadzone nowe rozszerzenie plików .xslx, które nie przechowuje stworzonego kodu VBA, żeby go zapisać musisz zmienić rozszerzenie .xlsx na .xlsm (m od makra 😉 ). Ewentualnie możesz zapisać je też pod starszym rozszerzeniem .xls, ale ma ono ograniczone możliwości jeśli chodzi o funkcjonalności Excela.

Krótki wstęp teoretyczny skończony, teraz czas żebyś włączył kartę Deweloper na wstążce ponieważ domyślnie się ona nie wyświetla. Od Excel 2010 wystarczy, że klikniesz prawym przyciskiem myszy w dowolne miejsce wstążki i wybierzesz polecenie Dostosuj wstążkę.

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 01

Następnie, w oknie, które się otworzy, musisz odnaleźć kartę Deweloper, zaznaczyć ją i zatwierdzić swój wybór przyciskiem OK.

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 02

Karta Dewelopera powinna być widoczna i możesz korzystać z jej poleceń.

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 03

W Excelu 2007 nie możesz jeszcze dostosowywać wstążki, więc kartę Deweloper włącza się inaczej. Musisz najpierw kliknąć Przycisk pakietu office:

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 04

Następnie kliknąć w przycisk Opcje programu Excel (na dole rozwiniętego okna).

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 05

Kolejnym Twoim krokiem będzie, w oknie, które się otworzy, na zakładce Popularne, zaznaczenie pola wyboru (checkboxa) Pokaż kartę Deweloper na Wstążce i zatwierdzenie swojego wyboru przyciskiem OK.

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 06

W Excelu 2007 nie znajdziesz na karcie Deweloper grupy poleceń dodatki, ale nie odgrywa ona prawie żadnej roli jeśli chodzi o rejestrowanie i pisanie kodu VBA.

Kurs 21.1 - Wstęp do makr i włączanie karty Deweloper 07

Pozdrawiam
Adam Kopeć
Miłośnik Excela