Freigeben über


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 VSTO-Add-Ins.

Gilt für: Die Informationen in diesem Thema gelten für Projekte auf Dokumentebene und VSTO-Add-In-Projekte. Siehe Verfügbare Features nach Office-Anwendung und Projekttyp.

Projekte auf Dokumentebene

Visual Studio stellt generierten Code hinter neuen oder vorhandenen Dokumenten oder Arbeitsblättern in Anpassungen auf Dokumentebene bereit. Dieser Code löst zwei verschiedene Ereignisse aus: Start und Herunterfahren.

Startereignis

Das Startereignis wird für jedes Hostelemente (Dokument, Arbeitsmappe oder Arbeitsblatt) ausgelöst, nachdem das Dokument ausgeführt wird und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Es ist das letzte Element, das im Konstruktor der Klasse ausgeführt wird, in der Ihr Code ausgeführt wird. Weitere Informationen zu Host-Elementen finden Sie unter Übersicht über Host-Elemente und Host-Steuerelemente.

Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio Ereignishandler für das Startup-Ereignis in den generierten Codedateien:

  • Für Microsoft Office Word-Projekte heißt ThisDocument_Startupder Ereignishandler .

  • Für Microsoft Office Excel-Projekte weisen die Ereignishandler die folgenden Namen auf:

    • Sheet1_Startup

    • Sheet2_Startup

    • Sheet3_Startup

    • ThisWorkbook_Startup

Shutdown-Ereignis

Das Herunterfahren-Ereignis wird für jedes Hostelement (Dokument oder Arbeitsblatt) ausgelöst, wenn die Anwendungsdomäne, in der Ihr Code geladen ist, entladen werden soll. Es ist das Letzte, das in der Klasse aufgerufen werden soll, wenn sie entladen wird.

Wenn Sie ein Projekt auf Dokumentebene erstellen, erstellt Visual Studio Ereignishandler für das Shutdown-Ereignis in den generierten Codedateien:

  • Für Microsoft Office Word-Projekte heißt ThisDocument_Shutdownder Ereignishandler .

  • Für Microsoft Office Excel-Projekte weisen die Ereignishandler die folgenden Namen auf:

    • Sheet1_Shutdown

    • Sheet2_Shutdown

    • Sheet3_Shutdown

    • ThisWorkbook_Shutdown

Hinweis

Entfernen Sie Steuerelemente während des Shutdown-Ereignishandlers des Dokuments nicht programmgesteuert. Die UI-Elemente des Dokuments sind nicht mehr verfügbar, wenn das Shutdown-Ereignis auftritt. Wenn Sie Steuerelemente entfernen möchten, bevor die Anwendung geschlossen wird, fügen Sie Ihren Code einem anderen Ereignishandler hinzu, z. B. BeforeClose oder BeforeSave.

Ereignishandlermethodendeklarationen

Jede Ereignishandlermethodendeklaration weist die gleichen Argumente auf: Absender und e. In Excel bezieht sich das Sender-Argument auf das Blatt, wie z. B. Sheet1 oder Sheet2; in Word bezieht sich das Sender-Argument auf das Dokument. Das e-Argument bezieht sich auf die Standardargumente für ein Ereignis, die in diesem Fall nicht verwendet werden.

Das folgende Codebeispiel zeigt die Standardereignishandler in Projekten auf Dokumentebene für Word.

private void ThisDocument_Startup(object sender, System.EventArgs e)
{
}

private void ThisDocument_Shutdown(object sender, System.EventArgs e)
{
}

Das folgende Codebeispiel zeigt die Standardereignishandler in Projekten auf Dokumentebene für Excel.

Hinweis

Das folgende Codebeispiel zeigt die Ereignishandler in der Sheet1 Klasse. Die Namen der Ereignishandler in anderen Hostelementklassen entsprechen dem Klassennamen. Beispielsweise wird in der Sheet2 Klasse der Startup-Ereignishandler benannt Sheet2_Startup. In der ThisWorkbook Klasse wird der Startup-Ereignishandler benannt ThisWorkbook_Startup.

private void Sheet1_Startup(object sender, System.EventArgs e)
{
}

private void Sheet1_Shutdown(object sender, System.EventArgs e)
{
}

Reihenfolge der Ereignisse in Excel-Projekten auf Dokumentebene

Die Startereignishandler 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 Ereignishandler für das Herunterfahren in einer Arbeitsmappenlösung werden in dieser Reihenfolge aufgerufen:

  6. ThisWorkbook_Shutdown.

  7. Sheet1_Shutdown.

  8. Sheet2_Shutdown.

  9. Sheet3_Shutdown.

  10. Andere Blätter in Reihenfolge bringen.

    Die Reihenfolge wird bestimmt, wenn das Projekt kompiliert wird. Wenn der Benutzer die Blätter zur Laufzeit neu anordnet, ändert er nicht die Reihenfolge, in der die Ereignisse ausgelöst werden, wenn die Arbeitsmappe das nächste Mal geöffnet oder geschlossen wird.

VSTO-Add-In-Projekte

Visual Studio stellt generierten Code in VSTO-Add-Ins bereit. Dieser Code löst zwei verschiedene Ereignisse aus: Startup und Shutdown.

Startereignis

Das Startup Ereignis wird ausgelöst, nachdem das VSTO-Add-In geladen wurde und der gesamte Initialisierungscode in der Assembly ausgeführt wurde. Dieses Ereignis wird von der Methode ThisAddIn_Startup in der generierten Codedatei behandelt.

Code im ThisAddIn_Startup Ereignishandler ist der erste auszuführende Benutzercode, es sei denn, Ihr VSTO-Add-In überschreibt die RequestComAddInAutomationService Methode. In diesem Fall wird der ThisAddIn_Startup Ereignishandler nach RequestComAddInAutomationServiceaufgerufen.

Fügen Sie dem ThisAdd-In_Startup Ereignishandler keinen Code hinzu, wenn der Code erfordert, dass ein Dokument bereits geöffnet ist. Fügen Sie stattdessen diesen Code zu einem Ereignis hinzu, das von der Office-Anwendung ausgelöst wird, wenn ein Benutzer ein Dokument erstellt oder öffnet. Weitere Informationen finden Sie unter Öffnen eines Dokuments beim Starten der Office-Anwendung.

Weitere Informationen zur Startsequenz von VSTO-Add-Ins finden Sie unter Architektur von VSTO-Add-Ins.

Shutdown-Ereignis

Das Shutdown Ereignis wird ausgelöst, wenn die Anwendungsdomäne, in die Ihr Code geladen wird, gerade entladen werden soll. Dieses Ereignis wird von der ThisAddIn_Shutdown Methode in der generierten Codedatei behandelt. Dieser Ereignishandler ist der letzte Benutzercode, der ausgeführt werden soll, wenn das VSTO-Add-In entladen wird.

Abschaltereignis in Outlook VSTO-Add-Ins

Das Shutdown Ereignis wird nur ausgelöst, wenn der Benutzer das VSTO-Add-In mithilfe des Dialogfelds COM-Add-Ins in Outlook deaktiviert. Sie 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:

Hinweis

Sie können erzwingen, dass das Shutdown Ereignis von Outlook beim Beenden ausgelöst wird, indem Sie die Registrierung ändern. Wenn ein Administrator diese Einstellung jedoch zurückgesetzt hat, wird jeder Code, den Sie der ThisAddIn_Shutdown Methode hinzufügen, nicht mehr ausgeführt, wenn Outlook beendet wird. Weitere Informationen finden Sie unter Shutdown-Änderungen für Outlook 2010.