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:

  1. ThisWorkbook_Startup.

  2. Sheet1_Startup.

  3. Sheet2_Startup.

  4. Sheet3_Startup.

  5. Andere Blätter in der Reihenfolge.

Die Shutdown-Ereignishandler in einer Arbeitsmappen-Lösung werden in dieser Reihenfolge aufgerufen:

  1. ThisWorkbook_Shutdown.

  2. Sheet1_Shutdown.

  3. Sheet2_Shutdown.

  4. Sheet3_Shutdown.

  5. 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:

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

Programmieren von Add-Ins auf Anwendungsebene

Übersicht über Office-Projektvorlagen