Makro in Excel ausführen

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Zakarya El Oirzadi

Last updated on Oktober 30, 2023

excel schaltflaeche druecken

Obwohl die Ausführung eines Makros in Excel nicht schwer ist, gibt es viele Möglichkeiten, sie auszuführen. Einige Wege sollen die Verwendung von Makros erleichtern, während andere Wege die Art und Weise, wie ein Benutzer mit Ihrer Arbeitsmappe interagiert, völlig verändern können. In diesem Artikel werden wir einige offensichtliche Möglichkeiten zum Ausführen von Makros, wie die Makroliste und die Schaltflächensteuerung, und einige weniger bekannte Möglichkeiten wie den VB-Editor und Ereignisse behandeln.

Erstens: Sicherstellen, dass Makros aktiviert sind

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

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

  • Speichern Sie die Arbeitsmappe
  • Schließen Sie die Arbeitsmappe und öffnen Sie sie dann erneut
  • Wenn die Arbeitsmappe geladen wird, wird eine Sicherheitswarnung angezeigt (siehe Abbildung unten). Klicken Sie auf Inhalt aktivieren.

makro ausfuehren sicherheitswarnung

Ausführen eines Makros aus der Makroliste

Eine Liste der Makros kann über die Hauptregisterkarte Ansicht aufgerufen werden. Um diese Liste anzuzeigen:

  • Wählen Sie die Hauptregisterkarte Ansicht
  • Klicken Sie auf die Schaltfläche Makros , um die Makroliste aufzurufen

makro ausfuehren makroliste

  • Wählen Sie das Makro, das Sie ausführen möchten, aus der Liste aus und klicken Sie auf die Schaltfläche Ausführen

makro in liste ausfuehren

Sie können die Makroliste auch jederzeit durch Drücken von ALT+F8 anzeigen.

Ausführen eines Makros mit einem Tastaturkürzel

Sie können einem Makro, das Sie häufig verwenden, ein Tastaturkürzel in Form von STRG+<Buchstabe> oder STRG+SHIFT+<Buchstabe> zuweisen. Gehen Sie so vor:

  • Rufen Sie die Makroliste auf(Ansicht > Makros, oder ALT+F8)
  • Wählen Sie das Makro aus, dem Sie einen Tastenkürzel zuweisen möchten
  • Klicken Sie auf Optionen..., um den Unterdialog Makrooptionen anzuzeigen

makro ausfuehren makroliste optionen

  • Geben Sie in das Textfeld unter Tastenkombination einen einzelnen Buchstaben ein und klicken Sie dann auf OK. Wenn Sie die UMSCHALTTASTE gedrückt halten, während Sie den Buchstaben eingeben, wird in der Beschriftung neben dem Feld SHIFT als Teil des Tastaturkürzels angezeigt

makro ausfuehren makroliste optionen tastenkombination

HINWEIS: Es wird sehr empfohlen, beim Erstellen einer Tastenkombination die UMSCHALTTASTE zu verwenden! Excel verwendet die Tastenkombination STRG+ für sich selbst, z. B. STRG+C zum Kopieren oder STRG+V zum Einfügen. Wenn Sie eine Makro-Tastenkombination mit diesen oder anderen Excel-Tastenkombination erstellen, überschreiben Sie die Excel-Tastenkombination, bis Sie die Makro-Tastenkombination neu zuweisen.

Ausführen eines Makros aus dem VB-Editor

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 (Hauptregisterkarte Entwicklertools > Visual Basic, oder ALT+F11)

makro-ausfuehren entwicklertools vb editor

  • Im Projektfenster auf das Modul doppelklicken, das das Makro enthält, das Sie testen möchten
  • Platzieren Sie den Mauszeiger im Code-Fenster des Moduls an einer beliebigen Stelle im Code des Makros zwischen „Sub“ und „End Sub“
  • Klicken Sie auf die Schaltfläche Ausführen in der Symbolleiste, oder drücken Sie die Tastenkombination F5

 

 

Ausführen eines Makros über eine Schaltfläche oder Form

makro mit schaltflaeche form ausfuehren

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

Informationen darüber, wie man eine anklickbare Schaltfläche oder eine Form erstellt, finden Sie hier: Hinzufügen einer Schaltfläche und Zuweisen eines Makros in Excel.

Automatisches Ausführen eines Makros mit Ereignissen in VBA

Es ist möglich, ein Makro auszuführen, wenn etwas in Excel passiert, zum Beispiel, wenn eine Arbeitsmappe geöffnet oder ein Zellenwert geändert wird. Diese werden als Ereignisse bezeichnet, für die Sie VBA-Code schreiben können, um Makros aufzurufen oder andere Operationen durchzuführen.

Um Code für ein Ereignis zu schreiben, müssen Sie den VB-Editor verwenden. Zum Beispiel, um Ereignisse für die Arbeitsmappe anzuzeigen:

  • Öffnen Sie den VB-Editor (ALT+F11)
  • Doppelklicken Sie auf das DieseArbeitsmappe Objekt im Projektfenster des VB-Editors
  • Wählen Sie „Workbook“ aus dem Dropdown-Menü oben links im Codefenster
  • Klicken Sie auf das Dropdown-Menü auf der rechten Seite, um eine Liste von Ereignissen zu sehen

makro ausfuehren arbeitsmappe ereignis

Im Folgenden Abschnitt finden Sie eine kleine, aber nützliche Auswahl an Excel-Ereignissen, über die Sie Makros ausführen können.

Workbook_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.

Private Sub Workbook_Open()

    MsgBox "Arbeitsmappe geöffnet!"

End Sub

Workbook_BeforeClose(Cancel as Boolean)

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

Der Parameter Cancel kann auf True gesetzt werden, um das Schließen der Arbeitsmappe zu verhindern.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    If MsgBox("Are you sure?", vbYesNo + vbQuestion, "Close") = vbNo Then
        
        Cancel = True
        
    End If

End Sub

makro ausfuehren arbeitsmappe schliessen meldungsbox

Worksheet_Change(ByVal Target As Range)

Worksheet_Change() wird ausgelöst, wenn der Wert einer Zelle geändert wird – unabhängig davon, ob er durch ein Makro, einen Kopier-/Einfügevorgang oder eine externe Verknüpfung geändert wird. Sie wird jedoch nicht ausgelöst, wenn ein Wert über eine Formel neu berechnet wird.

Der Parameter Target 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 unter Umständen zu einer Endlosschleife führen. Wenn Sie Zellenwerte ändern müssen, ohne dieses Ereignis auszulösen, sollten Sie Application.EnableEvents zunächst auf False setzen und dann am Ende der Ereignisprozedur wieder auf True.

Private Sub Worksheet_Change(ByVal Target As Range)

    MsgBox "Zellen geändert: " & Target.Address
    
    Application.EnableEvents = False
    Range("A2").Value = Range("A2").Value + Target.Cells.Count
    Application.EnableEvents = True

End Sub

Worksheet_SelectionChange(ByVal Target As Range)

Dieses Ereignis wird immer dann ausgelöst, wenn verschiedene Zellen mit dem Zielfadenkreuz ausgewählt werden. Der Target-Parameter 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 auslösen können. Verwenden Sie Application.EnableEvents.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    If Target.Address = "$A$1" Then
        
        MsgBox "Cursor in Ausgangsposition."
        
    End If
    
End Sub

Ein laufendes Makro anhalten

Ein laufendes Makro kann durch Drücken von ESC oder STRG+PAUSE unterbrochen werden. Standardmäßig wird bei einem unterbrochenen Makro der folgende Dialog angezeigt: makro ausfuehrung unterbrochen

Durch Anklicken von Ende wird das Makro angehalten, durch Fortsetzen wird es fortgesetzt. Wenn Sie auf Debuggen klicken, wird das Makro im VB-Editor geöffnet und die Codezeile markiert, an der die Ausführung unterbrochen wurde. (Innerhalb des VB-Editors können Sie das Makro mit den Schaltflächen Ausführen oder Beenden, in der Symbolleiste anhalten oder fortsetzen)

Application.EnableCancelKey

Sie können die Möglichkeit, ein Makro mit ESC oder STRG+PAUSE anzuhalten, deaktivieren, indem Sie die Eigenschaft Application.EnableCancelKey setzen. Diese Eigenschaft hat drei mögliche Werte:

  • xlInterrupt – dies ist der Standardwert, bei dem Excel das obige Dialogfeld anzeigt
  • xlDisabled – hebt die Möglichkeit auf, ein laufendes Makro anzuhalten
  • xlErrorHandler – wenn ein Unterbrechungsversuch unternommen wird, wird ein Fehler ausgelöst, der im Code behandelt werden kann

Wenn die Codeausführung angehalten wird, setzt Excel den Wert von Application.EnableCancelKey immer auf xlInterrupt zurück.

Ein guter Grund für die Verwendung dieser Eigenschaft ist die Sicherheit. Wenn Sie z. B. ein Makro haben, das vorübergehend Teile Ihrer Arbeitsmappe ungeschützt lässt, könnte ein Benutzer das Makro direkt nach dem Aufheben des Schutzes anhalten und Zugriff auf Inhalte erhalten, die Sie nicht beabsichtigt haben. Indem Sie Application.EnableCancelKey setzen, können Sie diese Möglichkeit vollständig unterbinden oder die Unterbrechung mit einem Error Handler behandeln, der die Arbeitsmappe wieder schützt.

Sub UpdateBaseData(ByVal NewData As Range, ByVal Target As Range)
    
    Application.EnableCancelKey = xlDisabled
    
    Target.Worksheet.Unprotect "MeinKennwort"
    NewData.Copy Target
    Target.Worksheet.Protect "MeinKennwort"
    
    Application.EnableCancelKey = xlInterrupt
    
End Sub

Excel mit dem Windows Task-Manager zwangsbeenden

Wenn sich das Makro „aufgehängt“ hat oder Excel zu beschäftigt ist, um einen Unterbrechungsversuch zu bestätigen, müssen Sie Excel möglicherweise mit dem Windows Task-Manager zwangsweise schließen. (HINWEIS: Wenn Sie dies tun, können Sie ungespeicherte Arbeit verlieren und müssen sich auf eine Version Ihrer Arbeitsmappe verlassen, die automatisch wiederhergestellt wird)

  • Öffnen Sie den Task-Manager direkt mit STRG+SHIFT+ESC
  • Wählen Sie die Registerkarte „Prozesse
  • Erweitern Sie den Eintrag „Microsoft Excel“, um alle Arbeitsmappen anzuzeigen
  • Wählen Sie die Arbeitsmappe aus, die Sie schließen möchten, und klicken Sie dann unten rechts auf Task beenden

makro ausfuehren task manager

VBA Code Generator