fbpx
Minuty czytania: 4

Jak nagrać makro

Kiedyś musi być ten pierwszy raz, prawda? Pierwsza praca. Pierwsza jazda samochodem. Pierwsze pieniądze. Po lekturze artykułu będziesz wiedział jak nagrać makro. Twoje pierwsze makro! Potem już tylko: sława, pieniądze… A nie, to nie ten temat 😉

Przede wszystkim na temat makr krąży wiele mitów. Wielu widzi w nich remedium na wszystkie excelowe problemy. „Gdybym tylko znał makra, rozwiązałbym ten problem w pracy” – myśli niejeden z nas. Tymczasem to nieprawda. No, nie całkiem prawda.

kamera w dłoniach

Czym jest makro?

Mówiąc w skrócie, jest to zestaw poleceń, który pozwala na zautomatyzowanie często powtarzanych czynności. Makro możesz zarejestrować, tak jak nagrywasz film. Klikasz wirtualną migawkę w Excelu i zaczynasz działać. Makro „nagrywa” kolejne kroki, które wykonujesz w postaci tajemniczo wyglądających poleceń.

Na przykład jeżeli włączę rejestrowanie makra, wykonując czynności które w efekcie dadzą taki efekt:

fragment danych Excel z nagłówkiem

program zarejestruje taki kod:

Sub Makro1()
'Makro1 Makro
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Font.Bold = True
ActiveCell.FormulaR1C1 = "Nagłówek"
Range("A2").Select
ActiveCell.FormulaR1C1 = "Firma A"
Range("A3").Select
ActiveCell.FormulaR1C1 = "Firma B"
End Sub

Obłęd! Wpisałem trzy słowa. Wyboldowałem nagłówek. Pokolorowałem tło na żółto. A w efekcie mam tyle linijek jakiś „chińskich krzaczków” 😉

Na szczęście w ogóle nie musisz patrzeć na te polecenia. Jeśli będziesz chciał uruchomić makro, po prostu wybierzesz odpowiednie polecenie. Program błyskawicznie wykona zestaw czynności, które zarejestrowałeś. I nie musisz nic więcej robić.

Nagrywane makra są „tłumaczone” na język poleceń zrozumiałych dla Excela. Tym językiem jest VBA (Visual Basic for Application) Jeśli będziesz chciał zapisać zeszyt z nagranym makrem, musisz to zrobić wybierając odpowiedni format pliku – skoroszyt programu Excel z obsługą makr (rozszerzenie pliku .xlsm)

Znając VBA wkraczasz w zupełnie nowy świat możliwości Excela. Ale nie od razu Kraków zbudowano 😉 Od czegoś trzeba zacząć.


Przeczytaj również:


Nagrywamy makro

Powiedzmy, że chcesz stworzyć makro, które zaznaczy wszystkie komórki, które zawierają formuły. Taka dodatkowa wizualizacja na pewno pomoże, w codziennej pracy z wieloma arkuszami.

Otwórz dowolny plik, który zawiera jakieś formuły. Możesz skorzystać z tego. Następnie postępuj wg poniższych kroków:

  1. Ustaw się w dowolnej komórce, w zakresie danych (w zakresie jakieś tabeli)
    tabela z danymi Excel
  2. Kliknij kartę DEWELOPER i wybierz ZAREJESTRUJ NOWE MAKRO.
    wstążka DEWELOPER programu Excel

Jeżeli nie widzisz karty DEWELOPER, wybierz PLIK > OPCJE > DOSTOSOWYWANIE WSTĄŻKI i po prawej stronie zaznacz kartę DEWELOPER.

widok opcji programu Excel
  1. Kliknij skrót CTRL + A na klawiaturze, tym samym zaznaczysz cały obszar tabeli
    zaznaczone dane w tabeli Excel
  2. Teraz użyj skrótu CTRL + G, aby przejść do komórek specjalnych.
    okienko dialogowe przechodzenie do komórek specjalnych
  3. Wybieramy FORMUŁY i oczywiście zatwierdzamy, klikając OK.
    okienko przechodzenie do - specjalne
  4. Excel zaznaczy tylko te komórki, które zawierają formuły.
  5. W dowolny sposób sformatuj te komórki. Ja wybrałem czerwoną czcionkę.
    tabela z danymi Excel - komórki z formułami pokolorowane na czerwono
  6. Gotowe! Możesz zatrzymać rejestrator makr wybierając ZATRZYMAJ REJESTROWANIE na karcie DEWELOPER.

Modyfikujemy kod VBA

Gratulacje! Nagrałeś makro. Jeżeli robiłeś to na moim pliku, powinieneś otrzymać poniższy kod.

Sub Makro2()
'Makro2 Makro
Range("B2:G12").Select
Range("E11").Activate
Selection.SpecialCells(xlCellTypeFormulas, 23).Select
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub

Aby zobaczyć kod, wybierz skrót ALT + F11, dzięki czemu przejdziesz do edytora Visual Basic. W tym artykule nie będziemy opisywać całego edytora. Skupimy się tylko na najważniejszej dla nas kwestii.

Wybierz Module1 po lewej stronie, a po prawej ukaże się okno edytora z kodem makr które nagrywałeś.

widok edytora VBA z zaznaczonym modułem i makrem

W interesującym nas Makrze nr2 mamy taką linijkę kodu:

Range("B2:G12").Select

Co oznacza, że nasze makro będzie zawsze działało na zakresie B2:G12. No zaraz! Ale przecież chcieliśmy stworzyć uniwersalne narzędzie. Ma kolorować komórki z formułami niezależnie od tego, gdzie znajduje się nasz zakres danych. Co zrobić? Musisz ręcznie zmodyfikować kod. W miejsce tych dwóch linijek:

Range("B2:G12").Select
Range("E11").Activate

wpisz:

Selection.CurrentRegion.Select

Ta linijka kodu powoduje, że zaznaczany jest cały obszar komórek przylegających do aktualnie zaznaczonej. Następnie cały ten obszar jest zaznaczany. Dalszą część kodu pomijamy.

Teraz możesz już śmiało przetestować makro:

  • stwórz nowy arkusz z tabelką i formułami,
  • skopiuj do niego swoje makro (możesz po prostu skopiować kod),
  • następnie uruchom makro i sprawdź czy wszystkie komórki z formułami zostały pokolorowane na czerwono.

Możesz też skorzystać z gotowego pliku.


Chcesz lepiej poznać Excela? Zapisz się na Excelness News


Wady i zalety rejestratora makr

Jak widzisz samo nagrywanie makra to nic trudnego. Ale podobno w życiu istnieje zasada: jak coś przychodzi nam zbyt łatwo to najczęściej nie jest tak samo wartościowe, jak to co zdobywamy z trudem 😉

W przypadku makr zasada sprawdza się znakomicie: możesz w prosty sposób zarejestrować czynności, które wykonujesz w Excelu, a potem odtworzyć je…w identyczny sposób. Problem w tym, że pomimo wykonywania tego samego zestawu czynności, najczęściej działamy: na różnych plikach, arkuszach, obszarach danych. Tu zwykły rejestrator makr nie pomoże. Trzeba poznać VBA.

Wg mnie główną zaletą rejestratora makr, jest właśnie możliwość nauki. Rejestrujesz makro, zmieniasz wielkość czcionki. Wchodzisz w edytor.

– Acha…więc takie polecenie zmieniło mi wielkość czcionki…noooo ciekawe…

Niestety rejestrator nie da Ci najbardziej czystego i optymalnego kodu. Ale na początek to nie jest najważniejsze. Niemniej jednak, będziesz mógł posmakować świata automatycznego Excela. Skoro już wiesz jak nagrać makro, to do dzieła! Próbuj, ucz się, zadawaj pytania – działaj!


Masz problemy z Excelem? Uzyskaj pomoc na grupie Keep Calm And Use Excel.

Kategorie: VBA

0 Komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *