Jak nagrać makro w programie Excel

  • Udostępnij To
Michael Brown

Samouczek krok po kroku dla początkujących, aby nagrać, wyświetlić, uruchomić i zapisać makro. Poznasz również niektóre wewnętrzne mechanizmy działania makr w Excelu.

Makra to świetny sposób na automatyzację powtarzających się zadań w Excelu. Jeśli zauważysz, że robisz w kółko te same rzeczy, nagraj swoje ruchy jako makro i przypisz do niego skrót klawiaturowy. A teraz możesz mieć wszystkie nagrane czynności wykonywane automatycznie, jednym naciśnięciem klawisza!

    Jak nagrać makro w programie Excel

    Podobnie jak inne narzędzia VBA, makra Excela znajdują się w Deweloper zakładka, która jest domyślnie ukryta. Zatem pierwszą rzeczą, którą musisz zrobić, jest dodanie zakładki Deweloper do wstążki Excela.

    Aby nagrać makro w programie Excel, wykonaj następujące czynności:

    1. Na Deweloper zakładka, w Kod grupę, kliknij przycisk Zapis Makro przycisk.

      Można też kliknąć przycisk Zapis Makro przycisk po lewej stronie Status bar:

      Jeśli wolisz pracować z klawiaturą zamiast z myszą, naciśnij następującą sekwencję klawiszy Alt , L , R (jeden po drugim, nie wszystkie klawisze naraz).

    2. W Zapis Makro W wyświetlonym oknie dialogowym skonfiguruj główne parametry swojego makra:
      • W Makro nazwa w polu wpisz nazwę dla swojego makra. Postaraj się, aby była ona znacząca i opisowa, dzięki czemu później będziesz mógł szybko odnaleźć makro na liście.

        W nazwach makr można używać liter, cyfr i podkreśleń, przy czym pierwszy znak musi być literą. Spacje nie są dozwolone, więc należy zachować nazwę jednowyrazową, zaczynając każdą część od dużej litery (np. MyFirstMacro ) lub oddzielać słowa podkreślnikami (np. My_First_Macro ).

      • W Klawisz skrótu Wpisz dowolną literę, aby przypisać skrót klawiaturowy do makra (opcjonalnie).

        Dozwolone są zarówno duże, jak i małe litery, ale lepiej jest używać kombinacji dużych liter ( Ctrl + Shift + litera ), ponieważ skróty makr zastępują wszelkie domyślne skróty programu Excel, gdy otwarty jest skoroszyt zawierający makro. Na przykład przypisanie makru Ctrl + S spowoduje utratę możliwości zapisywania plików programu Excel za pomocą skrótu. Przypisanie Ctrl + Shift + S spowoduje, że w przypadku makra nie będzie można zapisywać plików programu Excel za pomocą skrótu.standardowy skrót do zapisu.

      • Z. Zapisz makro w z listy rozwijanej wybierz miejsce, w którym chcesz zapisać swoje makro:
        • Osobisty podręcznik do makr - zapisuje makro do specjalnego skoroszytu o nazwie Personal.xlsb Wszystkie makra zapisane w tym skoroszycie są dostępne przy każdym użyciu programu Excel.
        • Ten podręcznik (domyślnie) - makro zostanie zapisane w bieżącym skoroszycie i będzie dostępne po ponownym otwarciu skoroszytu lub udostępnieniu go innym użytkownikom.
        • Nowy podręcznik - tworzy nowy skoroszyt i zapisuje makro do tego skoroszytu.
      • W Opis Wpisz krótki opis tego, co robi Twoje makro (opcjonalnie).

        Chociaż to pole jest opcjonalne, zalecałbym, abyś zawsze podawał krótki opis. Kiedy tworzysz wiele różnych makr, pomoże ci to szybko zrozumieć, co robi każde makro.

      • Kliknij OK aby rozpocząć nagrywanie makra.

    3. Wykonaj czynności, które chcesz zautomatyzować (patrz przykład makra nagrywania).
    4. Po zakończeniu kliknij przycisk Zatrzymaj nagrywanie przycisk na Deweloper tab:

      Lub analogiczny przycisk na Status bar:

    Przykład zapisu makra w programie Excel

    Aby zobaczyć jak to działa w praktyce, nagrajmy makro, które zastosuje pewne formatowanie do wybranych komórek. W tym celu wykonaj następujące czynności:

    1. Wybierz jedną lub więcej komórek, które chcesz sformatować.
    2. Na Deweloper zakładka lub Status pasek, kliknij Zapis Makro .
    3. W Zapis Makro W oknie dialogowym skonfiguruj następujące ustawienia:
      • Nazwij makro Nagłówek_Formatowanie (ponieważ będziemy formatować nagłówki kolumn).
      • Ustaw kursor w pozycji Klawisz skrótu i naciśnij jednocześnie klawisze Shift + F. Spowoduje to przypisanie skrótu Ctrl + Shift + F do makra.
      • Wybierz, aby zapisać makro w tym skoroszycie.
      • Dla Opis , użyj poniższego tekstu wyjaśniającego co robi makro: Pogrubia tekst, dodaje kolor wypełnienia i wyśrodkowuje go. .
      • Kliknij OK aby rozpocząć nagrywanie.

    4. Sformatuj wstępnie wybrane komórki tak, jak chcesz. W tym przykładzie używamy pogrubionego formatowania tekstu, jasnoniebieskiego koloru wypełnienia i wyrównania do środka.

      Wskazówka. Nie zaznaczaj żadnych komórek po rozpoczęciu nagrywania makra. Dzięki temu wszystkie formatowania zostaną zastosowane do wybór , a nie konkretny zakres.

    5. Kliknij Zatrzymaj nagrywanie na Deweloper zakładka lub Status bar.

    To wszystko - Twoje makro zostało nagrane. Teraz możesz wybrać dowolny zakres komórek w dowolnym arkuszu, nacisnąć przypisany skrót ( Ctrl+ Shift + F ), a Twoje niestandardowe formatowanie zostanie natychmiast zastosowane do wybranych komórek.

    Jak pracować z nagranymi makrami w Excelu

    Wszystkie główne opcje, jakie Excel udostępnia dla makr, są dostępne za pośrednictwem Makro Aby otworzyć to okno dialogowe, należy kliknąć Makra przycisk na Deweloper zakładka lub naciśnij skrót Alt+ F8.

    W otwartym oknie dialogowym można wyświetlić listę makr dostępnych we wszystkich otwartych skoroszytach lub związanych z konkretnym skoroszytem oraz skorzystać z następujących opcji:

    • Uruchom - Wykonuje wybrane makro.
    • Wejdź do - pozwala na debugowanie i testowanie makra w edytorze Visual Basic.
    • Edytuj - otwiera wybrane makro w Edytorze VBA, gdzie można przeglądać i edytować kod.
    • Usuń - trwale usuwa wybrane makro.
    • Opcje - umożliwia zmianę właściwości makra, takich jak powiązany Skrót klucz oraz Opis .

    Jak wyświetlić makra w programie Excel

    Kod makra programu Excel można przeglądać i modyfikować w Edytorze Visual Basic. Aby otworzyć Edytor, należy nacisnąć Alt + F11 lub kliknąć przycisk Visual Basic przycisk na Deweloper tab.

    Jeśli widzisz Edytor VB po raz pierwszy, nie czuj się zniechęcony lub onieśmielony. Nie będziemy mówić o strukturze czy składni języka VBA. Ten rozdział pozwoli Ci jedynie na podstawowe zrozumienie, jak działają makra w Excelu i co właściwie robi nagrywanie makra.

    Edytor VBA ma kilka okien, ale my skupimy się na dwóch głównych:

    Projekt Eksplorator - wyświetla listę wszystkich otwartych skoroszytów i ich arkuszy. Dodatkowo pokazuje moduły, formularze użytkownika i moduły klas.

    Okno kodu - to miejsce, w którym można przeglądać, edytować i pisać kod VBA dla każdego obiektu wyświetlanego w Eksploratorze projektu.

    Kiedy nagraliśmy przykładowe makro, w backendzie wydarzyły się następujące rzeczy:

    • Nowy moduł ( Moduel1 ) został wstawiony.
    • Kod VBA makra został napisany w oknie Code.

    Aby zobaczyć kod konkretnego modułu, kliknij dwukrotnie na moduł ( Moduł1 w naszym przypadku) w oknie Project Explorer. Normalnie kod makra składa się z takich części:

    Nazwa makra

    W VBA każde makro zaczyna się od Sub po którym następuje nazwa makra i kończy się End Sub , gdzie "Sub" to skrót od Podprogram (zwany także. Procedura ). Nasze przykładowe makro nosi nazwę Header_Formatting() , więc kod zaczyna się od tej linii:

    Sub Header_Formatting()

    Jeśli chcesz zmienić nazwę makra , wystarczy usunąć aktualną nazwę i wpisać nową bezpośrednio w oknie Code.

    Uwagi

    Linie poprzedzone apostrofem (') i wyświetlane domyślnie w kolorze zielonym nie są wykonywane. Są to komentarze dodane w celach informacyjnych. Linie komentarza mogą być bezpiecznie usunięte bez wpływu na funkcjonalność kodu.

    Zazwyczaj nagrane makro posiada 1 - 3 linie komentarza: nazwa makra (obowiązkowo); opis i skrót (jeśli został określony przed nagraniem).

    Kod wykonywalny

    Po komentarzach przychodzi kod, który wykonuje akcje, które nagrałeś. Czasami nagrane makro może mieć dużo zbędnego kodu, który nadal może być przydatny do rozgryzienia jak działają rzeczy w VBA :)

    Poniższy obrazek pokazuje, co robi każda część kodu naszego makra:

    Jak uruchomić nagrane makro

    Uruchamiając makro, mówisz Excelowi, aby wrócił do nagranego kodu VBA i wykonał dokładnie te same kroki. Istnieje kilka sposobów na uruchomienie nagranego makra w Excelu, a oto najszybsze z nich:

    • Jeśli przypisałeś skrót klawiaturowy do makra, naciśnij ten skrót.
    • Naciśnij Alt + 8 lub kliknij Makra przycisk na Deweloper zakładka. w Makro w oknie dialogowym, wybierz żądane makro i kliknij Uruchom .

    Możliwe jest również uruchomienie nagranego makra poprzez kliknięcie własnego przycisku. Oto kroki do stworzenia takiego: Jak stworzyć przycisk makra w Excelu.

    Jak zapisać makra w programie Excel

    Niezależnie od tego, czy nagrałeś makro, czy napisałeś kod VBA ręcznie, aby zapisać makro, musisz zapisać skoroszyt jako włączone makro (rozszerzenie .xlms).Oto jak:

    1. W skoroszycie zawierającym makro, kliknij przycisk Zapisz lub naciśnij Ctrl + S .
    2. W Zapisz jako okno dialogowe, wybierz skoroszyt programu Excel z włączonymi makrami (*.xlsm) od Zapisz jako typ z listy rozwijanej, a następnie kliknij Zapisz :

    Makra w Excelu: co jest, a co nie jest zapisane

    Jak właśnie zobaczyłeś, nagranie makra w Excelu jest dość łatwe. Ale aby tworzyć skuteczne makra, musisz zrozumieć, co dzieje się za kulisami.

    Co jest zapisane

    Rejestrator makr Excela przechwytuje całkiem sporo rzeczy - prawie wszystkie kliknięcia myszką i naciśnięcia klawiszy. Powinieneś więc dokładnie przemyśleć swoje kroki, aby uniknąć nadmiaru kodu, który może spowodować nieoczekiwane zachowanie Twojego makra. Poniżej kilka przykładów tego, co rejestruje Excel:

    • Zaznaczanie komórek za pomocą myszy lub klawiatury. Zapisywany jest tylko ostatni wybór przed wykonaniem czynności. Na przykład, jeśli zaznaczysz zakres A1:A10, a następnie klikniesz komórkę A11, zapisany zostanie tylko wybór A11.
    • Formatowanie komórek, takie jak kolor wypełnienia i czcionki, wyrównanie, obramowanie itp.
    • Formatowanie liczb takie jak procent, waluta itp.
    • Edycja formuł i wartości. Zmiany są rejestrowane po naciśnięciu klawisza Enter .
    • Przewijanie, przenoszenie okien Excela, przechodzenie do innych arkuszy i skoroszytów.
    • Dodawanie, nazywanie, przenoszenie i usuwanie arkuszy roboczych.
    • Tworzenie, otwieranie i zapisywanie skoroszytów.
    • Uruchomienie innych makr.

    Co nie może być zapisane

    Pomimo wielu różnych rzeczy, które Excel może rejestrować, pewne funkcje są poza możliwościami Macro Recorder:

    • Dostosowywanie wstążki Excela i paska narzędzi szybkiego dostępu.
    • Działania wewnątrz okien dialogowych programu Excel, takie jak Formatowanie warunkowe lub Znajdź i zamień (tylko wynik zostaje zapisany).
    • Interakcje z innymi programami. Na przykład nie można nagrywać kopiowania/wklejania z skoroszytu programu Excel do dokumentu programu Word.
    • Wszystko, co wiąże się z edytorem VBA. Nakłada to największe ograniczenia - wiele rzeczy, które można zrobić na poziomie programowania, nie może być nagrane:
      • Tworzenie funkcji niestandardowych
      • Wyświetlanie niestandardowych okien dialogowych
      • Wykonanie pętli np. Dla następnych , Dla każdego , Do czasu , itp.
      • Ocenianie warunków. W VBA można używać IF Then Else aby przetestować warunek i uruchomić jakiś kod, jeśli warunek jest prawdziwy lub inny kod, jeśli warunek jest fałszywy.
      • Wykonywanie kodu na podstawie zdarzeń W VBA można wykorzystać wiele zdarzeń do uruchomienia kodu związanego z tym zdarzeniem (np. otwarcie skoroszytu, przeliczenie arkusza, zmiana zaznaczenia itd.)
      • Używanie argumentów Podczas pisania makra w Edytorze VBA można dostarczyć argumenty wejściowe, aby makro wykonało określone zadanie. Zapisane makro nie może mieć żadnych argumentów, ponieważ jest niezależne i nie jest połączone z żadnymi innymi makrami.
      • Zrozumienie logiki. Na przykład, jeśli nagrasz makro, które kopiuje określone komórki, powiedzmy w Razem wiersz, Excel zapisze tylko adresy skopiowanych komórek. Za pomocą VBA można zakodować logikę, tzn. skopiować wartości w Razem rząd.

    Choć powyższe ograniczenia wyznaczają wiele granic dla nagranych makr, to jednak stanowią dobry punkt wyjścia. Nawet jeśli nie masz pojęcia o języku VBA, możesz szybko nagrać makro, a następnie przeanalizować jego kod.

    Przydatne wskazówki dotyczące rejestrowania makr w Excelu

    Poniżej znajdziesz kilka wskazówek i uwag, które potencjalnie mogą zaoszczędzić Ci wiele czasu i nerwów, czyniąc Twoją krzywą uczenia się gładszą, a makra bardziej wydajnymi.

    Używanie odniesień względnych przy zapisie makr

    Domyślnie Excel używa absolutny referencje Oznacza to, że Twój kod VBA będzie zawsze odnosił się do dokładnie tych samych komórek, które wybrałeś, niezależnie od tego, w którym miejscu arkusza znajdujesz się podczas uruchamiania makra.

    Istnieje jednak możliwość zmiany domyślnego zachowania na odniesienie względne W tym przypadku VBA nie będzie hardcode'ować adresów komórek, ale będzie pracować relatywnie do aktywnej (aktualnie wybranej) komórki.

    Aby nagrać makro z odniesieniem względnym, kliknij przycisk Użyj Odniesienia względne przycisk na Deweloper Aby powrócić do odwołań bezwzględnych, należy ponownie kliknąć przycisk, aby go wyłączyć.

    Na przykład, jeśli zapisujesz ustawienie tabeli z domyślnym odwołaniem bezwzględnym, twoje makro zawsze odtworzy tabelę w tym samym miejscu (w tym przypadku, Nagłówek w A1, Pozycja1 w A2, Pozycja2 w A3).

    Sub Absolute_Referencing() Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Nagłówek" Range( "A2" ). Select ActiveCell.FormulaR1C1 = "Pozycja1" Range( "A3" ). Select ActiveCell.FormulaR1C1 = "Pozycja2" End Sub

    Jeśli nagrasz to samo makro z odwołaniem względnym, tabela zostanie utworzona w miejscu, w którym umieściłeś kursor przed uruchomieniem makra ( Nagłówek w aktywnej komórce, Pozycja1 w komórce poniżej, i tak dalej).

    Sub Relative_Referencing() ActiveCell.FormulaR1C1 = "Header" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item1" ActiveCell.Offset(1, 0).Range( "A1" ). Select ActiveCell.FormulaR1C1 = "Item2" ActiveCell.Offset(1, 0).Range( "A1" ). Select End Sub

    Uwagi:

    • W przypadku korzystania z odniesień względnych należy pamiętać o wybraniu komórki początkowej przed rozpoczęciem nagrywania makra.
    • Odwołania względne nie działają we wszystkim. Niektóre funkcje Excela, np. konwersja zakresu na tabelę, wymagają odwołań bezwzględnych.

    Wybierz zakresy za pomocą skrótów klawiaturowych

    Gdy zaznaczasz komórkę lub zakres komórek za pomocą myszy lub klawiszy strzałek, Excel zapisuje adresy komórek. W konsekwencji, ilekroć uruchomisz makro, zapisane operacje będą wykonywane dokładnie na tych samych komórkach. Jeśli nie tego chcesz, użyj skrótów do zaznaczania komórek i zakresów.

    Jako przykład nagrajmy makro, które ustawia określony format (d-mmm-yy) dla dat z poniższej tabeli:

    W tym celu zapisuje się następujące operacje: naciśnij Ctrl + 1, aby otworzyć Formatuj komórki dialog> Data> wybierz format> OK. Jeśli Twój zapis obejmuje zaznaczenie zakresu za pomocą myszy lub klawiszy strzałek, Excel wykona następujący kod VBA:

    Sub Date_Format() Range( "A2:B4" ).Select Selection.NumberFormat = "d-mmm-yy" End Sub

    Uruchomienie powyższego makra spowodowałoby wybranie za każdym razem zakresu A2:B4. Jeśli dodasz do swojej tabeli kolejne wiersze, nie zostaną one przetworzone przez makro.

    Teraz zobaczmy, co się stanie, gdy wybierzemy tabelę za pomocą skrótu.

    Umieść kursor w górnej lewej komórce zakresu docelowego (A2 w tym przykładzie), rozpocznij nagrywanie i naciśnij Ctrl + Shift + End . W rezultacie pierwsza linia kodu będzie wyglądać tak:

    Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select

    Ten kod wybiera wszystkie komórki od aktywnej komórki do ostatnio użytej komórki, co oznacza, że wszystkie nowe dane zostaną automatycznie uwzględnione w wyborze.

    Alternatywnie możesz użyć kombinacji Ctrl + Shift + Strzałki:

    • Ctrl + Shift + strzałka w prawo, aby zaznaczyć wszystkie używane komórki po prawej stronie, a następnie
    • Ctrl + Shift + strzałka w dół, aby wybrać wszystkie używane komórki w dół.

    Spowoduje to wygenerowanie dwóch linii kodu zamiast jednej, ale wynik będzie taki sam - zostaną wybrane wszystkie komórki z danymi w dół i na prawo od aktywnej komórki:

    Range(Selection, Selection. End (xlToRight)). Select Range(Selection, Selection. End (xlDown)). Select

    Nagraj makro dla wyboru, a nie dla konkretnych komórek

    Powyższa metoda (czyli wybieranie wszystkich używanych komórek zaczynając od komórki aktywnej) świetnie sprawdza się przy wykonywaniu tych samych operacji na całej tabeli. W niektórych sytuacjach możesz jednak chcieć, aby makro przetwarzało pewien zakres, a nie całą tabelę.

    W tym celu VBA udostępnia funkcję Wybór obiekt odwołujący się do aktualnie zaznaczonej komórki (komórek). Większość rzeczy, które można zrobić z zakresem, można zrobić również z zaznaczeniem. Jaką korzyść daje to użytkownikowi? W wielu przypadkach podczas nagrywania nie trzeba w ogóle niczego zaznaczać - wystarczy napisać makro dla aktywnej komórki. A następnie zaznaczyć dowolny zakres, uruchomić makro i będzie ono manipulować całym zaznaczeniem.

    Na przykład to jednolinijkowe makro może sformatować dowolną liczbę wybranych komórek jako procenty:

    Sub Percent_Format() Selection.NumberFormat = "0.00%" End Sub

    Dokładnie zaplanuj, co nagrywasz

    Microsoft Excel Macro Recorder przechwytuje prawie całą twoją aktywność, w tym błędy, które popełniasz i poprawiasz. Na przykład, jeśli naciśniesz Ctrl + Z, aby cofnąć coś, to również zostanie nagrane. Ostatecznie możesz skończyć z dużą ilością niepotrzebnego kodu. Aby tego uniknąć, edytuj kod w edytorze VB lub zatrzymaj nagrywanie, usuń wadliwe makro i rozpocznij nagrywanie od nowa.

    Tworzenie kopii zapasowej lub zapisywanie skoroszytu przed uruchomieniem makra

    Wyniku działania makr Excela nie można cofnąć. Dlatego przed pierwszym uruchomieniem makra sensowne jest utworzenie kopii skoroszytu lub przynajmniej zapisanie bieżącej pracy, aby zapobiec nieoczekiwanym zmianom. Jeśli makro zrobi coś złego, po prostu zamknij skoroszyt bez zapisywania.

    Utrzymuj nagrane makra krótko

    W przypadku automatyzacji sekwencji różnych zadań, można pokusić się o zapisanie ich wszystkich w jednym makrze. Są dwa główne powody, aby tego nie robić. Po pierwsze, trudno jest nagrać długie makro płynnie i bez błędów. Po drugie, duże makra są trudne do zrozumienia, testowania i usuwania błędów. Dlatego dobrym pomysłem jest podzielenie dużego makra na kilka części. Na przykład, podczas tworzenia tabeli podsumowującejz wielu źródeł, można użyć jednego makra do importu informacji, drugiego do konsolidacji danych, a trzeciego do formatowania tabeli.

    Mam nadzieję, że ten tutorial dał Ci trochę wglądu w to, jak nagrać makro w Excelu. W każdym razie dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu za tydzień!

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.