So führen Sie ein Makro in Excel aus

Obwohl das Ausführen eines Makros in Excel nicht schwer ist, gibt es viele Möglichkeiten, es auszuführen. Einige Möglichkeiten sollen die Verwendung von Makros vereinfachen, während andere die Art und Weise ändern können, wie ein Benutzer mit Ihrer Arbeitsmappe interagiert. In diesem Artikel werden einige offensichtliche Möglichkeiten zum Ausführen von Makros behandelt, die wie die Makrosliste und die Schaltflächen-Steuerelemente ausgeführt werden, und einige obskurere Methoden wie der VB-Editor und Ereignisse.

Erstens: Stellen Sie sicher, dass Makros aktiviert sind

Die Sicherheitsfunktionen von Excel deaktivieren Makros standardmäßig. Beim Öffnen einer makroaktivierten Arbeitsmappe werden Benutzer normalerweise gefragt, ob sie Makros aktivieren möchten.

Wenn Sie keine Makros ausführen können, befolgen Sie diese Anweisungen:

  • Speichern Sie die Arbeitsmappe
  • Schließen Sie die Arbeitsmappe und öffnen Sie sie erneut
  • Wenn die Arbeitsmappe geladen wird, sehen Sie a Sicherheitswarnung Aufforderung (unten abgebildet). Klicken Inhalt aktivieren.

Ausführen eines Makros aus der Makroliste

Auf eine Liste von Makros kann über die Registerkarte Ansicht zugegriffen werden. So zeigen Sie diese Liste an:

  • Wähle aus Sicht Tab
  • Klicken Sie auf die Schaltfläche mit der Bezeichnung Makros um die Makroliste aufzurufen

  • Wählen Sie das Makro, das Sie ausführen möchten, aus der Liste aus und klicken Sie dann auf das Lauf Taste

Sie können die Makroliste auch jederzeit anzeigen, indem Sie drücken ALT+F8.

Führen Sie ein Makro mit einer Tastenkombination aus

Sie können einem Makro, das Sie häufig verwenden, eine Tastenkombination in Form von STRG+ oder STRG+UMSCHALT+ zuweisen. Um dies zu tun:

  • Rufen Sie die Makroliste auf (Sicht > Makros, oder ALT+F8)
  • Wählen Sie das Makro aus, auf das Sie eine Verknüpfung anwenden möchten
  • Klicken Optionen… um die zu zeigen Makrooptionen Unterdialog

  • Im Textfeld unter Tastenkürzel, geben Sie einen einzelnen Buchstaben ein und klicken Sie dann auf OK. Wenn Sie während der Eingabe des Buchstabens die SHIFT-Taste gedrückt halten, zeigt die Beschriftung neben dem Feld SHIFT als Teil der Verknüpfung an

HINWEIS: Es wird dringend empfohlen, beim Erstellen einer Tastenkombination die UMSCHALTTASTE zu verwenden! Excel verwendet STRG+ Tastenkombinationen für sich selbst, z.B. STRG+C zum Kopieren oder STRG+V zum Speichern. Wenn Sie eine Makroverknüpfung mit diesen oder anderen Excel-Verknüpfungen erstellen, überschreiben Sie die Excel-Verknüpfung, bis Sie die Makroverknüpfung erneut zuweisen.

Führen Sie ein Makro aus dem VB-Editor aus

Makros können auch über den VB-Editor ausgeführt werden. Mit dem VB-Editor können Sie den Code eines Makros überprüfen und alle gewünschten Änderungen vornehmen, bevor Sie es ausführen.

So führen Sie ein Makro im VB-Editor aus:

  • Öffnen Sie den VB-Editor (Registerkarte Entwickler > Visual Basic oder ALT+F11)

  • In dem Projekt doppelklicken Sie auf das Modul, das das zu testende Makro enthält
  • Im Codefenster des Moduls, platziere den Cursor irgendwo im Code des Makros zwischen „Sub“ und „End Sub“
  • Drücke den Lauf Schaltfläche in der Symbolleiste oder drücken Sie die Tastenkombination F5

Ausführen eines Makros mit einer Schaltfläche oder Form

Es ist oft nützlich, ein Steuerelement auf dem Arbeitsblatt zu haben, auf das ein Benutzer klicken kann, um ein Makro auszuführen, z. B. ein Button-Steuerelement oder ein Shape. Dies ist für Endbenutzer viel schneller als das Öffnen von Makrolisten oder das Durchsuchen von Makrocode im VB-Editor.

Informationen zum Erstellen einer anklickbaren Schaltfläche oder Form finden Sie hier: Schaltfläche hinzufügen und Makro in Excel zuweisen.

Automatisches Ausführen eines Makros mithilfe von Ereignissen in VBA

Es ist möglich, ein Makro auszuführen, wenn in Excel etwas passiert - zum Beispiel wenn eine Arbeitsmappe geöffnet oder ein Zellenwert geändert wird. Diese nennt man Veranstaltungen, und Sie können VBA-Code schreiben, damit sie Makros aufrufen oder andere Operationen ausführen.

Um Code für ein Ereignis zu schreiben, müssen Sie den VB-Editor verwenden. So zeigen Sie beispielsweise Ereignisse für die Arbeitsmappe an:

  • Öffnen Sie den VB-Editor (ALT+F11)
  • Doppelklicken Sie auf das DiesesArbeitsbuch Objekt im VB-Editor Projektfenster
  • Wählen Sie „Arbeitsmappe“ aus der Dropdown-Liste oben links im Codefenster
  • Klicken Sie auf das Dropdown-Menü rechts, um eine Liste der Ereignisse anzuzeigen

Im Folgenden finden Sie ein kleines, aber nützliches Beispiel für Excel-Ereignisse, von denen aus Sie Makros ausführen können.

Arbeitsmappe_Open()

Das Ereignis Workbook_Open() wird ausgelöst, wenn eine Arbeitsmappe geöffnet wird. Wenn Sie nach dem Öffnen einer Arbeitsmappe die Sicherheitswarnung erhalten, wird dieses Ereignis ausgelöst, nachdem Sie auf "Inhalt aktivieren" geklickt haben.

12345 Private Unterarbeitsmappe_Open()MsgBox "Arbeitsmappe geöffnet!"End Sub

Workbook_BeforeClose(Abbrechen als Boolean)

Workbook_BeforeClose() wird ausgelöst, wenn der Benutzer versucht, die Arbeitsmappe zu schließen. Dies geschieht, bevor überprüft wird, ob die Arbeitsmappe gespeichert werden muss.

Die Abbrechen Parameter kann auf True gesetzt werden, um das Schließen der Arbeitsmappe zu stoppen.

123456789 Private Sub Workbook_BeforeClose(Cancel As Boolean)If MsgBox("Sind Sie sicher?", vbYesNo + vbQuestion, "Close") = vbNo ThenAbbrechen = WahrEnde WennEnd Sub

Worksheet_Change(ByVal Target As Range)

Worksheet_Change() wird ausgelöst, wenn der Wert einer Zelle geändert wird – sei es durch ein Makro, durch einen Kopier-/Einfügevorgang oder durch einen externen Link. Es wird jedoch nicht ausgelöst, wenn ein Wert über eine Formel neu berechnet wird.

Die Ziel Parameter stellt die Zellen dar, deren Wert sich geändert hat.

Wenn Sie den Wert anderer Zellen innerhalb dieses Ereignisses ändern, wird das Ereignis erneut ausgelöst. Dies kann möglicherweise eine Endlosschleife verursachen. Wenn Sie Zellenwerte ändern müssen, ohne dieses Ereignis auszulösen, ziehen Sie die Einstellung in Betracht. Application.EnableEvents zu Falsch zuerst und dann zurück auf Wahr am Ende der Veranstaltungsprozedur.

123456789 Private Sub Worksheet_Change (ByVal Target As Range)MsgBox "Zellen geändert: " & Target.AddressApplication.EnableEvents = FalseRange("A2").Value = Range("A2").Value + Target.Cells.CountApplication.EnableEvents = TrueEnd Sub

Worksheet_SelectionChange(ByVal Target As Range)

Dieses Ereignis wird immer dann ausgelöst, wenn verschiedene Zellen mit dem Ziel-Fadenkreuz ausgewählt werden. Der Parameter Target stellt die neuen Zellen dar, die ausgewählt wurden.

Sie können dieses Ereignis auch mit Code auslösen, z. B. „Range(“A1“).Select“. Wie bei Worksheet_Change() sollten Sie bei der Auswahl anderer Zellen innerhalb dieses Ereignisses vorsichtig sein, da Sie eine Endlosschleife verursachen können. Verwenden Sie Application.EnableEvents.

123456789 Privates Unter Worksheet_SelectionChange(ByVal Target As Range)Wenn Target.Address = "$A$1" ThenMsgBox "Cursor in Ausgangsposition."Ende WennEnd Sub

Stoppen Sie ein laufendes Makro

Ein laufendes Makro kann durch Drücken von unterbrochen werden ESC oder STRG+UNTBR. Standardmäßig zeigt ein unterbrochenes Makro den folgenden Dialog an:

Klicken Ende stoppt das Makro, während Weitermachen werde es wieder aufnehmen. Klicken Debuggen öffnet das Makro im VB-Editor und fokussiert die Codezeile, auf der die Ausführung angehalten wurde. (Im VB-Editor können Sie das Makro mit den Schaltflächen Ausführen oder Beenden in der Symbolleiste stoppen oder fortsetzen.)

Application.EnableCancelKey

Sie können die Möglichkeit zum Beenden eines Makros mit ESC oder STRG+UNTBR deaktivieren, indem Sie das Application.EnableCancelKey Eigentum. Diese Eigenschaft hat drei mögliche Werte:

  • xlUnterbrechung - Dies ist der Standardwert, der dazu führt, dass Excel den obigen Dialog anzeigt
  • xlDeaktiviert - entfernt die Möglichkeit, ein laufendes Makro zu stoppen
  • xlErrorHandler - bei einem Interrupt-Versuch wird ein Fehler ausgegeben, der im Code behandelt werden kann

Immer wenn die Codeausführung beendet wird, setzt Excel den Wert von Application.EnableCancelKey immer wieder auf zurück xlUnterbrechung.

Ein guter Grund für die Nutzung dieser Eigenschaft ist die Sicherheit. Wenn Sie beispielsweise über ein Makro verfügen, das Teile Ihrer Arbeitsmappe vorübergehend aufhebt, könnte ein Benutzer das Makro möglicherweise direkt nach dem Aufheben des Schutzes stoppen und Zugriff auf Inhalte erhalten, die Sie nicht beabsichtigt haben. Durch Festlegen von Application.EnableCancelKey können Sie ihre Fähigkeit dazu vollständig deaktivieren oder ihre Unterbrechung ordnungsgemäß mit einem Fehlerhandler behandeln, der die Arbeitsmappe erneut schützt.

1234567891011 Sub UpdateBaseData(ByVal NewData As Range, ByVal Target As Range)Application.EnableCancelKey = xlDisabledTarget.Worksheet.Unprotect "MyPassword"NewData.Copy-ZielTarget.Worksheet.Protect "MyPassword"Application.EnableCancelKey = xlInterruptEnd Sub

Erzwingen Sie das Schließen von Excel mit dem Windows Task-Manager

Wenn das Makro „hängt“ oder Excel zu beschäftigt ist, um einen Unterbrechungsversuch zu bestätigen, müssen Sie möglicherweise Excel selbst mit dem erzwingen Windows Task-Manager. (HINWEIS: Wenn Sie dies tun, verlieren Sie möglicherweise nicht gespeicherte Arbeit und müssen sich auf eine Version Ihrer Arbeitsmappe mit automatischer Wiederherstellung verlassen.)

  • Öffnen Sie den Task-Manager direkt mit STRG+UMSCHALT+ESC
  • Wähle aus "Prozesse” Registerkarte
  • Erweitern Sie das Element "Microsoft Excel", um alle Arbeitsmappen anzuzeigen
  • Wählen Sie die Arbeitsmappe aus, die Sie schließen möchten, und klicken Sie dann auf Task beenden in der unteren rechten Ecke

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave