Die Verwendung von Diagrammblattereignissen (Arbeitsblatt speziell für Diagramme) ist ziemlich einfach. Aber wenn es darum geht, Ereignisse in eingebetteten Diagrammen zu verwenden, ist das nicht so einfach. Aber ich versichere Ihnen, dass Ereignisse mit eingebetteten Diagrammen nicht so schwer zu aktivieren sind. Es ist ähnlich wie „Anwendungsereignisse erstellen„. Beginnen wir also ohne weitere Verzögerung.

Es gibt also zwei Schritte, um ein eingebettetes Diagrammereignis zu aktivieren. Zunächst wird eine Diagrammereignisklasse erstellt und Ereignisse definiert. Zweitens wird ein Objekt dieser Ereignisklasse erstellt. Das ist es.

Schritt 1: Diagrammereignisklasse erstellen und Ereignisse definieren

  • Fügen Sie einen Link ein: / modules-class-modules-in-vba-vba-class-modules-and-how-to-use-them [Klassenmodul] `. Nennen Sie es wie Sie wollen. Ich habe es ChartClass genannt.

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

Private WithEvents CEvents As Chart
  • 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“.

Private Sub Class_Initialize()

Set CEvents = ActiveSheet.ChartObjects(1).Chart

End Sub

Hier initialisieren wir das CEvents-Diagramm mit dem ersten Diagramm, das auf diesem Blatt erstellt wurde. Die 1 ist die Indexnummer der Diagrammobjekte auf dem aktiven Blatt.

  • Definieren Sie nun die Ereignisse, die Sie verwenden möchten. Wählen Sie in der Dropdown-Liste oben links das CEvent-Objekt aus. Alle verfügbaren Ereignisbehandlungsverfahren stehen Ihnen im Dropdown-Menü oben rechts zur Verfügung. Wählen Sie aus, was Sie benötigen, und definieren Sie, was Sie tun möchten, wenn dieses Ereignis ausgelöst wird.

Um die Verwendung zu demonstrieren, wähle ich das Ereignis CEvents_Activate. Ich werde versuchen, dem Benutzer zu zeigen, dass das Diagrammereignis in einer Nachrichtenbox aktiviert ist.

Private Sub CEvents_Activate()

MsgBox "The chart Events are working"

End Sub

Unsere Arbeit hier ist erledigt. Sie können hier aus den verfügbaren Ereignissen für den Diagrammtyp beliebig viele Ereignisse erstellen. Aber die Events werden noch nicht funktionieren, weil es nur eine Klasse ist. Wir müssen das Objekt dieser Klasse in einem Sub in einem normalen Modul oder dem Objektmodul erstellen. Führen Sie dann das U-Boot aus.

Danach wird unsere Veranstaltung beginnen zu arbeiten.

image

Schritt 2: Erstellen Sie das Diagrammklassenobjekt im Modul.

  • Fügen Sie ein normales Modul ein.

  • Deklarieren Sie eine Variable der Klasse, die Sie zuvor erstellt haben.

Dim mychart As ChartClass
  • Erstellen Sie ein Sub und initialisieren Sie die Variable mit dem Objekt der Klasse ChartClass.

Sub activateChartEvent()

Set mychart = New ChartClass

End Sub

image

Führen Sie dieses Sub mit F5 aus. Während Sie diesen Code ausführen, sind Diagrammereignisse für das erste Diagramm auf dem aktuell aktiven Blatt aktiv, da wir diese Zeile für die Initialisierung des Diagrammereignisses verwendet haben. Set CEvents = ActiveSheet.ChartObjects (1) .Chart. * Und fertig. Wenn Sie nun auf das erste Diagramm auf dem aktuell aktiven Blatt klicken, wird die Meldung angezeigt, dass die Diagrammereignisse funktionieren.

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. Sie können sie jedoch nach Belieben 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 Mychart= 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 False.

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 mychart = New ChartClass

End Sub

image

Also ja Leute, so können Sie das eingebettete Diagrammereignis in Excel verwenden.

Lassen Sie mich wissen, ob dies erklärend genug war und Ihnen geholfen hat, Ereignisse auf Anwendungsebene in Excel VBA zu verstehen. Schreiben Sie Ihre Gedanken in den Kommentaren unten auf. 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] | * Es gibt sieben Arten von Ereignissen in Excel. 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.