Die Ereignisse auf Anwendungsebene wirken sich auf die gesamte Anwendung aus (Excel in dieser Referenz). Das Aktivieren des Anwendungsereignisses ist jedoch nicht so einfach wie das Erstellen von Arbeitsmappen- oder Arbeitsblattereignissen. Aber ich versichere Ihnen, dass es auch nicht so schwierig ist. In diesem Artikel erfahren Sie in wenigen einfachen Schritten, wie Sie das Anwendungsereignis in Excel VBA erstellen und verwenden.

Schritt 1: Erstellen eines Ereignisobjekts in einem Klassenmodul

Um ein Ereignisobjekt zu erstellen, müssen wir das Klassenmodul verwenden.

  • Fügen Sie einen „Klassenmodul“ ein. Nennen Sie es wie Sie wollen. Ich habe es MyAppEvents genannt.

  • Definieren Sie eine Ereignisvariable vom Anwendungstyp mit dem Schlüsselwort WithEvents.

Private WithEvents myApp As Application
  • Initialisieren Sie dieses Ereignis in der Unterroutine class_initialize ().

Wählen Sie in der Dropdown-Liste links die Klasse aus. Wählen Sie anschließend in der Dropdown-Liste oben rechts die Option „Initialisieren“.

image

Private Sub Class_Initialize()

Set myApp = Application

End Sub
  • Definieren Sie nun die Ereignisse, die Sie verwenden möchten. Wählen Sie in der Dropdown-Liste oben links das Ereignisobjekt aus. Alle verfügbaren Ereignisbehandlungsverfahren stehen Ihnen im Dropdown-Menü oben rechts zur Verfügung. Wählen Sie die gewünschte Option aus und definieren Sie, was Sie tun möchten, wenn dieses Ereignis ausgelöst wird. Image: https://www.office-skill.site/images/wp-content-uploads-2020-01-Capture-37.jpg [image, Breite = 540, Höhe = 208]

Ich benutze das SheetActivate-Ereignis. Immer wenn ein Benutzer zwischen Blättern einer geöffneten Arbeitsmappe wechselt, wird der Name der Arbeitsmappe angezeigt, die der Blattbenutzer ausgewählt hat.

Private Sub myApp_SheetActivate(ByVal Sh As Object)

MsgBox ActiveWorkbook.Name & "-" & Sh.Name

End Sub

Hier können Sie beliebig viele Ereignisse definieren, die Sie definieren möchten.

image

Die Ereignisse werden nicht sofort funktionieren. Dies war der erste Schritt.

Da es sich um ein Klassenmodul handelt, müssen wir ein Objekt daraus erstellen, damit Ereignisse aktiviert werden.

Jetzt müssen wir diese Ereignisse nur noch von einer normalen Unterroutine aus starten.

Schritt 2: Erstellen Sie eine Ereignisstarter-Subroutine im normalen Modul

Jetzt haben wir eine Eventklasse. Wir müssen nur ein Objekt dieser Klasse erstellen und es initialisieren. Sobald wir diese Unterroutine ausführen, funktionieren alle definierten Ereignisse in der Ereignisklasse.

image

  • Fügen Sie ein normales Modul ein.

  • Definieren Sie eine Variable der von Ihnen erstellten Klasse.

Private AppE As MyAppEvents
  • Initialisieren Sie es in einem Unterprogramm. Sie können es benennen, wie Sie möchten.

Private Sub StartEvents()

Set AppE = New MyAppEvents

End Sub

  • Führen Sie diesen Code mit der Taste F5 aus. Optional können Sie dieses Makro der Schaltfläche im Arbeitsblatt zuweisen, wenn Sie die Ereignisse über das Arbeitsblatt starten möchten.

Und es ist geschafft. Wenn Sie jetzt die Arbeitsblätter wechseln, wird ein Meldungsfeld mit dem Namen der Arbeitsmappe und des Arbeitsblatts angezeigt, solange der Code mit der Arbeitsmappe geöffnet ist.

image

War es schwer? Das glaube ich nicht. Lassen Sie mich wissen, was Sie im Kommentarbereich unten denken.

Ein- und Ausschalten von VBA-Anwendungsereignissen Sobald Sie das Makro im normalen Modul ausgeführt haben, wird es immer ausgelöst, bis Sie die Arbeitsmappe schließen, die die Ereignisse enthält. Aber Sie möchten vielleicht, dass sie sie nach Ihrem Willen ein- und ausschalten. Es gibt zwei Möglichkeiten, dies zu tun.

Aufheben des Ereignisobjektsatzes EnableEvents auf False

1. Aufheben des Ereignisobjekts

Setzen Sie in einer separaten Unterroutine das Ereignisobjekt auf Nothing

Private Sub StopEvents()

Set AppE = Nothing

End Sub

Sobald Sie diesen Code ausführen, funktionieren die Ereignisse nicht mehr. Sie können es in eine Schaltfläche im Arbeitsblatt einfügen, um die Ereignisse zu stoppen. Jetzt haben Sie zwei Schaltflächen zum Starten und Stoppen dieser spezifischen Ereignisse. Es werden nur Ereignisse gestoppt, die vom AppE-Objekt erstellt wurden.

2. Setzen Sie EnableEvents auf False

Die zweite Methode besteht darin, die Ereignisse zu deaktivieren. Um alle Ereignisse unauffindbar zu machen, setzen wir die EnableEvents-Eigenschaft der Application-Klasse auf

Falsch.

Private Sub StopEvents()

Application.EnableEvents= False

End Sub

Der obige Code deaktiviert alle Ereignisse. Sogar die Standard-Excel-Ereignisse. Sie funktionieren erst, wenn Sie sie erneut starten. Selbst wenn Sie die Unterroutine StartEvents () (oben) ausführen, funktioniert das Ereignis nicht. Damit alle Ereignisse wieder funktionieren, müssen Sie die EnableEvents-Eigenschaft erneut auf True setzen.

Wenn Sie also möchten, dass Ihre Ereignisse bei jedem Start der Ereignisse funktionieren, fügen Sie diese Codezeile in das Unterelement ein.

Private Sub StartEvents()

Application.EnableEvents = True

Set AppE = New MyAppEvents

End Sub

image

Also ja Leute, so können Sie das Anwendungsereignis in Excel verwenden. Lassen Sie mich wissen, ob dies erklärend genug war und Ihnen geholfen hat, Ereignisse auf Anwendungsebene in Excel VBA im Kommentarbereich unten zu verstehen. Wenn Sie etwas hinzufügen möchten, schreiben Sie dies ebenfalls auf. Sie können Ihre Fragen zu diesem Artikel oder einem anderen Excel VBA-bezogenen Thema im Kommentarbereich unten stellen.

Laden Sie die folgende Arbeitsdatei herunter:

image 48

Verwandte Artikel:

link: / events-in-vba-die-ereignisse-in-excel-vba [Die Ereignisse in Excel VBA] | In Excel gibt es sieben Arten von Ereignissen. Jede Veranstaltung befasst sich mit unterschiedlichem Umfang. Das Anwendungsereignis wird auf Arbeitsmappenebene behandelt. Arbeitsmappe auf Blattebene. Arbeitsblatt Ereignis auf Bereichsebene.

link: / events-in-vba-the-worksheet-events-in-excel-vba [Die Arbeitsblattereignisse in Excel VBA] * | Das Arbeitsblattereignis ist sehr nützlich, wenn Ihre Makros ausgeführt werden sollen, wenn ein bestimmtes Ereignis auftritt Das Blatt.

link: / events-in-vba-workbook-events-using-vba-in-microsoft-excel [Arbeitsmappenereignisse mit VBA in Microsoft Excel] | Die Arbeitsmappenereignisse wirken sich auf die gesamte Arbeitsmappe aus. Da alle Blätter Teil der Arbeitsmappe sind, funktionieren diese Ereignisse auch mit ihnen.

link: / events-in-vba-verhindert-dass-ein-automacroeventmacro-mit-vba-in-microsoft-excel ausgeführt wird [Verhindern, dass ein automacro / eventmacro mit VBA in Microsoft Excel ausgeführt wird] * | Verwenden Sie die Umschalttaste, um die Ausführung des Makros auto_open zu verhindern.

link: / events-in-vba-chart-objektereignisse-using-vba-in-microsoft-excel [Diagrammobjektereignisse mit VBA in Microsoft Excel] * | Die Diagramme sind komplexe Objekte und Sie haben mehrere Komponenten an sie angehängt. Um die Diagrammereignisse zu erstellen, verwenden wir das Klassenmodul.

Beliebte Artikel:

link: / Tastatur-Formel-Verknüpfungen-50-Excel-Verknüpfungen-zur-Steigerung-Ihrer-Produktivität [50 Excel-Verknüpfungen zur Steigerung Ihrer Produktivität] | Werden Sie schneller bei Ihrer Aufgabe. Diese 50 Verknüpfungen beschleunigen Ihre Arbeit in Excel noch schneller.

link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel] | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, mit der Werte aus verschiedenen Bereichen und Tabellen gesucht werden.

link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Zählen Sie Werte mit Bedingungen, die diese erstaunliche Funktion verwenden. Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen.

Die Countif-Funktion ist wichtig, um Ihr Dashboard vorzubereiten.

link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel] | Dies ist eine weitere wichtige Funktion des Dashboards. Auf diese Weise können Sie Werte unter bestimmten Bedingungen zusammenfassen.