Um Chartereignisse nutzen zu können, muss man vorher ein Klassenmodul erstellen. Dieses ist im Gegensatz zu den Application-Ereignissen jedoch recht einfach zu bewerkstelligen.
Anlegen des Klassenmoduls:
Gehen Sie im Visual-Basic-Editor auf Einfügen ▸ Klassenmodul und geben folgendes ein:
Public WithEvents Diagramm As Chart
Um alles übersichtlicher zu gestalten, sollte man der Klasse den Namen Diagrammklasse geben (unter Eigenschaften/Namen). Nun stehen in der linken Drop-Down-Liste die neue Klasse und in der rechten die dazugehörigen Eigenschaften zur Verfügung. Damit die Ereignisprozeduren ausgeführt werden, muss man nun das Diagramm der Diagrammklasse zuordnen. Dies geschieht in einem beliebigen Modul durch folgenden Code:
Dim MeinDiagramm As New Diagrammklasse
Sub DiagrammZuordnen()
Set MeinDiagramm.Diagramm = Worksheets(1).ChartObjects(1).Chart
End Sub
Parameter:
Wie man erkennen kann, übergeben auch die Chartereignisse Parameter. Da man nun allerdings eine Klasse definiert hat, sind diese derart vielfältig, dass sie hier nicht aufgeführt werden. Sie sind aber in der Online-Hilfe ausreichend erklärt.
Chartereignisse:
- Diagramm_Activate
- Tritt ein, wenn das Diagramm aktiviert wird. War das Diagramm vor einem Blattwechsel aktiv und wird wieder zu diesem Blatt gewechselt, tritt dieses Ereignis auch ein.
- Diagramm_BeforeDoubleClick(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean)
- Tritt bei einem Doppelklick auf.
- Diagramm_BeforeRightClick(Cancel As Boolean)
- Tritt beim drücken der rechten Maustaste ein.
- Diagramm_Calculate
- Tritt auf, wenn das Diagramm neu gezeichnet wird, z. B. neue Daten.
- Diagramm_Deactivate
- Tritt bei einem Blatt- oder Diagrammwechsel auf.
- Diagramm_DragOver
- Tritt ein, wenn ein Zellbereich über ein Diagramm gezogen wird, aber noch nicht losgelassen ist.
- Diagramm_DragPlot
- Tritt ein, wenn ein Zellbereich über ein Diagramm gezogen wurde und losgelassen wurde.
- Diagramm_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
- Tritt ein, wenn die Maustaste gedrückt wird.
- Diagramm_MouseMove(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
- Tritt ein, wenn die Maus bewegt wird.
- Diagramm_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
- Tritt ein, wenn die Maustaste losgelassen wurde.
- Diagramm_Resize
- Tritt ein, wenn die Diagrammgrö�e verändert wurde.
- Diagramm_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
- Tritt ein, wenn das Diagramm ausgewählt wurde.
- Diagramm_SeriesChange(ByVal SeriesIndex As Long, ByVal PointIndex As Long)
- Tritt bei einer Veränderung der ausgewählten Datenreihe ein.