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