Ereignisse in Office-Projekten
Jede Office-Projektvorlage generiert automatisch mehrere Ereignishandler. Die Ereignishandler für Anpassungen auf Dokumentebene unterscheiden sich geringfügig von Ereignishandlern für Add-Ins auf Anwendungsebene.
Betrifft: Die Informationen in diesem Thema betreffen Projekte auf Dokument- und Anwendungsebene für Microsoft Office 2010 und 2007 Microsoft Office System. Weitere Informationen finden Sie unter Verfügbare Funktionen nach Office-Anwendung und Projekttyp.
Projekte auf Dokumentebene
Visual Studio stellt in Anpassungen auf Dokumentebene neuen oder vorhandenen Dokumenten oder Arbeitsblättern zugrunde liegenden generierten Code bereit. Mit diesem Code werden zwei verschiedene Ereignisse ausgelöst: Startup und Shutdown.
Startup-Ereignis
Das Startup-Ereignis wird für jedes der Hostelemente (Dokument, Arbeitsmappe oder Arbeitsblatt) ausgelöst, nachdem das Dokument gestartet und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Sie wird im Konstruktor der Klasse, in der der Code ausgeführt wird, zuletzt ausgeführt. Weitere Informationen zu Hostelementen finden Sie unter Übersicht über Hostelemente und Hoststeuerelemente.
Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio in den generierten Codedateien Ereignishandler für das Startup-Ereignis:
Für Microsoft Office Word-Projekte lautet der Ereignishandler ThisDocument_Startup.
Für Microsoft Office Excel-Projekte sind die Ereignishandler folgendermaßen benannt:
Sheet1_Startup
Sheet2_Startup
Sheet3_Startup
ThisWorkbook_Startup
Shutdown-Ereignis
Das Shutdown -Ereignis wird für jedes der Hostelemente (Dokument oder Arbeitsblatt) unmittelbar vor dem Entladen der Anwendungsdomäne, in der der Code geladen ist, ausgelöst. Es wird beim Entladen der Klasse zuletzt aufgerufen.
Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio in den generierten Codedateien Ereignishandler für das Shutdown -Ereignis:
Für Microsoft Office Word-Projekte lautet der Ereignishandler ThisDocument_Shutdown.
Für Microsoft Office Excel-Projekte sind die Ereignishandler folgendermaßen benannt:
Sheet1_Shutdown
Sheet2_Shutdown
Sheet3_Shutdown
ThisWorkbook_Shutdown
Tipp
Entfernen Sie keine Steuerelemente programmgesteuert, während der Shutdown-Ereignishandler des Dokuments ausgeführt wird. Die Benutzeroberflächenelemente des Dokuments sind nicht mehr verfügbar, wenn das Shutdown-Ereignis auftritt. Wenn Sie vor dem Schließen des Dokuments Steuerelemente entfernen möchten, fügen Sie den Code einem anderen Ereignishandler hinzu, z. B. BeforeClose oder BeforeSave.
Ereignishandler-Methodendeklarationen
Jeder Ereignishandler-Methodendeklaration werden die gleichen Argumente übergeben: sender und e. In Excel verweist das sender-Argument auf das Arbeitsblatt, zum Beispiel Sheet1 oder Sheet2; in Word verweist das sender-Argument auf das Dokument. Das e-Argument verweist auf die Standardargumente eines Ereignisses, die in diesem Fall nicht verwendet werden.
Im folgenden Codebeispiel werden die Standardereignishandler in Projekten auf Dokumentebene für Word veranschaulicht.
Private Sub ThisDocument_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
End Sub
Private Sub ThisDocument_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Shutdown
End Sub
private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}
private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}
Im folgenden Codebeispiel werden die Standardereignishandler in Projekten auf Dokumentebene für Excel veranschaulicht.
Tipp
Im folgenden Codebeispiel werden die Ereignishandler in der Sheet1-Klasse dargestellt. Die Namen der Ereignishandler in anderen Hostelementklassen entsprechen dem Klassennamen. In der Sheet2-Klasse wird der Startup-Ereignishandler beispielsweise Sheet2_Startup genannt. In der ThisWorkbook-Klasse wird der Startup-Ereignishandler ThisWorkbook_Startup genannt
Private Sub Sheet1_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
End Sub
Private Sub Sheet1_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Shutdown
End Sub
private void Sheet1_Startup(object sender, System.EventArgs e)
{
}
private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}
Ereignisreihenfolge in Excel-Projekten auf Dokumentebene
Die Startup-Ereignishandler in Excel-Projekten werden in dieser Reihenfolge aufgerufen:
ThisWorkbook_Startup.
Sheet1_Startup.
Sheet2_Startup.
Sheet3_Startup.
Andere Blätter in der Reihenfolge.
Die Shutdown-Ereignishandler in einer Arbeitsmappen-Lösung werden in dieser Reihenfolge aufgerufen:
ThisWorkbook_Shutdown.
Sheet1_Shutdown.
Sheet2_Shutdown.
Sheet3_Shutdown.
Andere Blätter in der Reihenfolge.
Die Reihenfolge wird beim Kompilieren des Projekts bestimmt. Wenn die Blätter zur Laufzeit neu angeordnet werden, wird dadurch beim nächsten Öffnen oder Schließen der Arbeitsmappe nicht die Reihenfolge geändert, in der die Ereignisse ausgelöst werden.
Projekte auf Anwendungsebene
Visual Studio stellt generierten Code in Add-Ins auf Anwendungsebene bereit. Mit diesem Code werden zwei verschiedene Ereignisse ausgelöst: Startup und Shutdown.
Startup-Ereignis
Das Startup-Ereignis wird ausgelöst, nachdem das Add-In geladen und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Dieses Ereignis wird von der ThisAddIn_Startup-Methode in der generierten Codedatei behandelt.
Beim Code im ThisAddIn_Startup-Ereignishandler handelt es sich um den Benutzercode, der zuerst ausgeführt wird, es sei denn, das Add-In überschreibt die RequestComAddInAutomationService-Methode. In diesem Fall wird der ThisAddIn_Startup-Ereignishandler nach RequestComAddInAutomationService aufgerufen. In Add-Ins für 2007 Microsoft Office System kann der Code im ThisAddIn_Startup-Ereignishandler auch nach der RequestService-Methode aufgerufen werden, wenn das Add-In diese Methode überschreibt.
Weitere Informationen über die Startreihenfolge von Add-Ins finden Sie unter Architektur von Add-Ins auf Anwendungsebene.
Shutdown-Ereignis
Das Shutdown-Ereignis wird ausgelöst, wenn die Anwendungsdomäne, in die der Code geladen wird, entladen werden soll. Dieses Ereignis wird von der ThisAddIn_Shutdown-Methode in der generierten Codedatei behandelt. Dieser Ereignishandler ist der letzte Benutzercode, der nach dem Entladen des Add-Ins ausgeführt wird.
Shutdown-Ereignis in Outlook 2010-Add-Ins
Bei Add-Ins, die in Outlook 2010 geladen werden, wird das Shutdown-Ereignis nur ausgelöst, wenn der Benutzer das Add-In im Dialogfeld "COM-Add-Ins" in Outlook deaktiviert. Es wird nicht ausgelöst, wenn Outlook beendet wird. Wenn Sie Code haben, der beim Beenden von Outlook ausgeführt werden muss, behandeln Sie eines der folgenden Ereignisse:
Das Quit-Ereignis eines Application-Objekts
Tipp
Sie können erzwingen, dass Outlook das Shutdown-Ereignis beim Beenden auslöst, indem Sie die Registrierung ändern. Wenn ein Administrator diese Einstellung wiederherstellt, wird der Code, den Sie der ThisAddIn_Shutdown-Methode hinzufügen, beim Beenden von Outlook jedoch nicht mehr ausgeführt. Weitere Informationen finden Sie im Thema zu Shutdown-Änderungen für Outlook 2010 (möglicherweise in englischer Sprache).
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Office-Projekten in Visual Studio
Weitere Ressourcen
Entwickeln von Office-Projektmappen
Programmieren von Anpassungen auf Dokumentebene