Jak uruchomić makro w programie Excel

Chociaż uruchomienie makra w programie Excel nie jest trudne, istnieje wiele sposobów na ich uruchomienie. Niektóre sposoby mają na celu ułatwienie korzystania z makr, podczas gdy inne mogą całkowicie zmienić sposób interakcji użytkownika ze skoroszytem. W tym artykule omówimy kilka oczywistych sposobów uruchamiania makr uruchamianych jak kontrolki Lista makr i Przyciski, a także bardziej niejasne sposoby, takie jak Edytor VB i Zdarzenia.

Po pierwsze: upewnij się, że makra są włączone

Funkcje zabezpieczeń programu Excel domyślnie wyłączają makra. Podczas otwierania skoroszytu obsługującego makra użytkownicy są zazwyczaj pytani, czy chcą włączyć makra.

Jeśli nie możesz uruchomić makr, spróbuj wykonać te instrukcje:

  • Zapisz skoroszyt
  • Zamknij skoroszyt, a następnie otwórz go ponownie
  • Po załadowaniu skoroszytu zobaczysz Ostrzeżenie bezpieczeństwa monit (na zdjęciu poniżej). Kliknij Włącz zawartość.

Uruchom makro z listy makr

Dostęp do listy makr można uzyskać z zakładki Widok. Aby wyświetlić tę listę:

  • Wybierz Pogląd patka
  • Kliknij przycisk oznaczony Makra aby wyświetlić listę makr

  • Wybierz z listy makro, które chcesz uruchomić, a następnie kliknij Biegać przycisk

Możesz także wyświetlić listę makr w dowolnym momencie, naciskając ALT+F8.

Uruchom makro za pomocą skrótu klawiaturowego

Skrót klawiaturowy można przypisać do często używanego makra w postaci CTRL+ lub CTRL+SHIFT+. Aby to zrobić:

  • Wyświetl listę makr (Pogląd > Makralub ALT+F8)
  • Wybierz makro, do którego chcesz zastosować skrót
  • Kliknij Opcje… pokazać Opcje makr okno podrzędne

  • W polu tekstowym pod Skrót klawiszowy, wpisz pojedynczą literę, a następnie kliknij ok. Jeśli przytrzymasz klawisz SHIFT podczas wpisywania litery, etykieta obok pola pokaże SHIFT jako część skrótu

NOTATKA: zdecydowanie zaleca się użycie klawisza SHIFT podczas tworzenia klawisza skrótu! Excel używa dla siebie skrótów CTRL+, np. CTRL+C, aby skopiować, lub CTRL+V, aby zapisać. Jeśli utworzysz skrót do makra za pomocą tych lub innych skrótów programu Excel, zastąpisz skrót programu Excel do czasu ponownego przypisania skrótu do makra.

Uruchom makro z edytora VB

Makra można również uruchamiać z edytora VB. Edytor VB umożliwia przeglądanie kodu makra i wprowadzanie dowolnych zmian przed jego uruchomieniem.

Aby uruchomić makro w edytorze VB:

  • Otwórz Edytor VB (karta Deweloper> Visual Basic lub ALT + F11)

  • w Projekt w oknie, kliknij dwukrotnie moduł zawierający makro, które chcesz przetestować
  • W oknie kodu modułu, umieść kursor w dowolnym miejscu w kodzie makra między „Sub” i „End Sub”
  • Kliknij Biegać na pasku narzędzi lub naciśnij skrót klawiszowy F5

Uruchom makro za pomocą przycisku lub kształtu

Często warto mieć w arkuszu kontrolkę, którą użytkownik może kliknąć, aby uruchomić makro, takie jak kontrolka Przycisk lub Kształt. Jest to znacznie szybsze dla użytkowników końcowych niż otwieranie list makr lub przekopywanie się przez kod makr w edytorze VB.

Informacje na temat tworzenia klikalnego przycisku lub kształtu można znaleźć tutaj: Dodaj przycisk i przypisz makro w programie Excel.

Automatyczne uruchamianie makra za pomocą zdarzeń w VBA

Możliwe jest uruchomienie makra, gdy coś się wydarzy w programie Excel - na przykład po otwarciu skoroszytu lub zmianie wartości komórki. Są to tak zwane Wydarzeniai możesz napisać kod VBA, aby wywoływać makra lub wykonywać inne operacje.

Aby napisać kod na wydarzenie, musisz użyć edytora VB. Na przykład, aby wyświetlić zdarzenia ze skoroszytu:

  • Otwórz edytor VB (ALT+F11)
  • Kliknij dwukrotnie Ten zeszyt obiekt w edytorze VB Okno projektu
  • Wybierz „Skoroszyt” z rozwijanego menu w lewym górnym rogu okna kodu
  • Kliknij menu po prawej, aby zobaczyć listę wydarzeń

Poniżej przedstawiono mały, ale przydatny przykład zdarzeń programu Excel, z których można uruchamiać makra.

Skoroszyt_Otwórz()

Zdarzenie Workbook_Open() jest wyzwalane po otwarciu skoroszytu. Jeśli otrzymasz Ostrzeżenie o zabezpieczeniach po otwarciu skoroszytu, to zdarzenie zostanie wywołane po kliknięciu "Włącz zawartość".

12345 Prywatny skoroszyt podrzędny_Open()MsgBox "Skoroszyt otwarty!"Napis końcowy

Workbook_BeforeClose(Anuluj jako Boolean)

Workbook_BeforeClose() jest uruchamiany, gdy użytkownik próbuje zamknąć skoroszyt. Dzieje się to przed wykonaniem jakichkolwiek kontroli, aby sprawdzić, czy skoroszyt wymaga zapisania.

ten Anulować parametr można ustawić na True, aby zatrzymać zamykanie skoroszytu.

123456789 Prywatny skoroszyt pomocniczy_BeforeClose (Anuluj jako Boolean)If MsgBox("Czy na pewno?", vbYesNo + vbQuestion, "Close") = vbNo ThenAnuluj = PrawdaZakończ, jeśliNapis końcowy

Worksheet_Change (ByVal Target jako zakres)

Worksheet_Change() uruchamia się, gdy wartość komórki zostanie zmieniona - niezależnie od tego, czy została zmieniona przez makro, operację kopiowania/wklejania, czy przez łącze zewnętrzne. Nie uruchamia się jednak, gdy wartość jest ponownie obliczana za pomocą formuły.

ten Cel parametr reprezentuje komórki, których wartość uległa zmianie.

Jeśli zmienisz wartość innych komórek w tym zdarzeniu, zdarzenie zostanie wywołane ponownie. Może to spowodować nieskończoną pętlę. Jeśli chcesz zmienić wartości komórek bez wywoływania tego zdarzenia, rozważ ustawienie Application.EnableEvents do Fałszywe najpierw, a następnie ustaw go z powrotem na Prawdziwe pod koniec procedury imprezy.

123456789 Private Sub Worksheet_Change (ByVal Target As Range)MsgBox "Zmienione komórki: " & Target.AddressApplication.EnableEvents = FalseRange("A2").Value = Range("A2").Value + Target.Cells.CountApplication.EnableEvents = PrawdaNapis końcowy

Worksheet_SelectionChange(ByVal Target jako zakres)

To zdarzenie jest uruchamiane, gdy za pomocą celownika zostaną wybrane różne komórki. Parametr Cel reprezentuje nowe komórki, które zostały wybrane.

Możesz również wywołać to zdarzenie kodem, np. „Zakres(„A1”).Wybierz”. Podobnie jak w przypadku Worksheet_Change(), należy uważać na wybieranie innych komórek w tym zdarzeniu, ponieważ może to spowodować nieskończoną pętlę. Użyj Application.EnableEvents.

123456789 Private Sub Worksheet_SelectionChange (ByVal Target As Range)Jeśli Target.Address = "$A$1" WtedyMsgBox "Kursor w pozycji wyjściowej."Zakończ, jeśliNapis końcowy

Zatrzymaj uruchomione makro

Działające makro można przerwać, naciskając WYJŚCIE lub CTRL+BREAK. Domyślnie przerwane makro wyświetli następujące okno dialogowe:

Kliknięcie Kończyć się zatrzyma makro, podczas gdy Kontyntynuj wznowi go. Kliknięcie Odpluskwić otworzy makro w edytorze VB i skoncentruje się na wierszu kodu, na którym wykonanie zostało wstrzymane. (W edytorze VB można zatrzymać lub wznowić makro za pomocą przycisków Uruchom lub Zakończ na pasku narzędzi).

Application.EnableCancelKey

Możesz wyłączyć możliwość zatrzymywania makra za pomocą ESC lub CTRL+BREAK, ustawiając Application.EnableCancelKey własność. Ta właściwość ma trzy możliwe wartości:

  • xlPrzerwanie - jest to wartość domyślna, która powoduje, że Excel wyświetla powyższe okno dialogowe
  • xlWyłączone - usuwa możliwość zatrzymania uruchomionego makra
  • xlObsługa błędów - przy próbie przerwania zgłaszany jest błąd, który można obsłużyć w kodzie

Za każdym razem, gdy wykonanie kodu zostanie zatrzymane, program Excel zawsze resetuje wartość Application.EnableCancelKey z powrotem do xlPrzerwanie.

Dobrym powodem korzystania z tej właściwości jest bezpieczeństwo. Na przykład, jeśli masz makro, które tymczasowo niechroniło części skoroszytu, użytkownik może potencjalnie zatrzymać makro zaraz po usunięciu ochrony i uzyskać dostęp do zawartości, której nie zamierzał mieć. Ustawiając Application.EnableCancelKey, możesz całkowicie wyłączyć ich możliwość wykonania tego lub zgrabnie obsłużyć ich przerwanie za pomocą programu obsługi błędów, który ponownie chroni skoroszyt.

1234567891011 Sub UpdateBaseData (ByVal NewData jako zakres, ByVal Target jako zakres)Application.EnableCancelKey = xlDisabledCel.Arkusz.Odbezpiecz "MojeHasło"NewData.Copy TargetCel.Worksheet.Protect "MojeHasło"Application.EnableCancelKey = xlInterruptNapis końcowy

Wymuś zamknięcie programu Excel za pomocą Menedżera zadań systemu Windows

Jeśli makro „zawiesiło się” lub program Excel stał się zbyt zajęty, aby potwierdzić próbę przerwania, może być konieczne wymuszenie zamknięcia samego programu Excel za pomocą Menedżer zadań systemu Windows. (UWAGA: jeśli to zrobisz, możesz stracić niezapisaną pracę i będziesz musiał polegać na automatycznej wersji skoroszytu).

  • Otwórz Menedżera zadań bezpośrednio, używając CTRL+SHIFT+ESC
  • Wybierz "Procesy” zakładka
  • Rozwiń element „Microsoft Excel”, aby wyświetlić wszystkie skoroszyty
  • Wybierz skoroszyt, który chcesz zamknąć, a następnie kliknij Zakończ zadanie w prawym dolnym rogu

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave