Programm-VSTO-Add-Ins

Wenn Sie eine Microsoft Office-Anwendung erweitern, indem Sie ein VSTO-Add-In erstellen, schreiben Sie Code direkt für die ThisAddIn -Klasse in Ihrem Projekt. Sie können diese Klasse zum Ausführen von Aufgaben wie das Zugreifen auf das Objektmodell der Microsoft Office-Hostanwendung, das Anpassen der Benutzeroberfläche (UI) einer Anwendung und das Verfügbarmachen von Objekten in Ihrem VSTO-Add-In für andere Office-Projektmappen verwenden.

Gilt für: Die Informationen in diesem Thema gelten für VSTO-Add-In-Projekte. Weitere Informationen finden Sie unter features available by Office-App lication and project type.

Einige Aspekte beim Schreiben von Code in VSTO-Add-In-Projekten unterscheiden sich von anderen Projekttypen in Visual Studio. Viele dieser Unterschiede haben mit der Art zu tun, wie die Office-Objektmodelle im verwalteten Code verfügbar gemacht werden. Weitere Informationen finden Sie unter Schreiben von Code in Office-Lösungen.

Allgemeine Informationen zu VSTO-Add-Ins und anderen Lösungstypen, die Sie mithilfe der Office-Entwicklungstools in Visual Studio erstellen können, finden Sie unter VSTO (Übersicht über die Entwicklung von Office-Lösungen).

Verwenden der ThisAddIn-Klasse

Sie können mit dem Schreiben des VSTO-Add-In-Codes in der ThisAddIn -Klasse beginnen. Visual Studio generiert diese Klasse automatisch in der Codedatei "ThisAddIn.vb " (in Visual Basic) oder "ThisAddIn.cs " (in C#) in Ihrem VSTO-Add-In-Projekt. Die Visual Studio-Tools für Office-Laufzeit instanziiert diese Klasse automatisch, wenn die Microsoft Office-App lizenzierung Ihr VSTO-Add-In lädt.

Es gibt zwei Standardereignishandler in der ThisAddIn -Klasse. Um Code auszuführen, wenn das VSTO-Add-In geladen wird, fügen Sie dem ThisAddIn_Startup -Ereignishandler Code hinzu. Um Code direkt vor dem Entladen des VSTO-Add-Ins auszuführen, fügen Sie dem ThisAddIn_Shutdown -Ereignishandler Code hinzu. Weitere Informationen zu diesen Ereignishandlern finden Sie unter "Ereignisse in Office-Projekten".

Hinweis

In Outlook wird der ThisAddIn_Shutdown -Ereignishandler standardmäßig nicht jedes Mal aufgerufen, wenn das VSTO-Add-In entladen wird. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".

Zugreifen auf das Objektmodell der Hostanwendung

Verwenden Sie zum Zugreifen auf das Objektmodell der Hostanwendung das Feld Application der ThisAddIn -Klasse. Dieses Feld gibt ein Objekt zurück, das für die aktuelle Instanz der Hostanwendung steht. In der folgenden Tabelle sind die Typen der Rückgabewerte für das Feld Application in jedem VSTO-Add-In-Projekt aufgeführt.

Hostanwendung Typ des Rückgabewerts
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint Anwendung
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

Das folgende Codebeispiel zeigt, wie Sie mithilfe des Application Felds eine neue Arbeitsmappe in einem VSTO-Add-In für Microsoft Office Excel erstellen. Dieses Beispiel ist für die Ausführung über die ThisAddIn -Klasse bestimmt.

Excel.Workbook newWorkbook = this.Application.Workbooks.Add(System.Type.Missing);

Verwenden Sie für die Ausführung außerhalb der ThisAddIn -Klasse das Globals -Objekt, um auf die ThisAddIn -Klasse zuzugreifen. Weitere Informationen zum Globals Objekt finden Sie unter globalen Zugriff auf Objekte in Office-Projekten.

Excel.Workbook newWorkbook = Globals.ThisAddIn.Application.Workbooks.Add(System.Type.Missing);

Weitere Informationen zu den Objektmodellen von bestimmten Microsoft Office-Anwendungen finden Sie unter den folgenden Themen:

Zugreifen auf ein Dokument, wenn die Office-App lizenzierung gestartet wird

Nicht alle Office 2010-Anwendungen öffnen automatisch ein Dokument, wenn Sie es starten, und keine der Office 2013-Anwendungen öffnen ein Dokument, wenn Sie es starten. Fügen Sie daher keinen Code im ThisAdd-In_Startup Ereignishandler hinzu, wenn der Code ein Dokument öffnen muss. Fügen Sie den Code stattdessen einem Ereignis hinzu, das von der Office-Anwendung ausgelöst wird, wenn ein Benutzer ein Dokument erstellt oder öffnet. So können Sie sicherstellen, dass ein Dokument geöffnet ist, bevor mit Ihrem Code Schritte dafür ausgeführt werden.

Das folgende Codebeispiel funktioniert mit einem Word-Dokument nur dann, wenn der Benutzer ein Dokument erstellt oder ein bestehendes öffnet.

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        this.Application.DocumentOpen +=
new Word.ApplicationEvents4_DocumentOpenEventHandler(WorkWithDocument);

        ((Word.ApplicationEvents4_Event)this.Application).NewDocument +=
            new Word.ApplicationEvents4_NewDocumentEventHandler(WorkWithDocument);  
    }
    
    private void WorkWithDocument(Microsoft.Office.Interop.Word.Document Doc)
    {
        try
        {
            Word.Range rng = Doc.Range(0, 0);
            rng.Text = "New Text";
            rng.Select();
        }
        catch (Exception ex)
        {
            // Handle exception if for some reason the document is not available.
        }
    }

ThisAddIn-Mitglieder, die für andere Aufgaben verwendet werden sollen

In der folgende Tabelle werden weitere häufig vorkommende Aufgaben beschrieben, und es wird gezeigt, welche Member der ThisAddIn -Klasse Sie zum Ausführen der Aufgaben verwenden können.

Aufgabe Zu verwendender Member
Führen Sie Code aus, um das VSTO-Add-In zu initialisieren, wenn es geladen wird. Fügen Sie der ThisAddIn_Startup -Methode Code hinzu. Dies ist der Standardereignishandler für das Startup -Ereignis. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".
Führen Sie Code zum Bereinigen von Ressourcen aus, die vom VSTO-Add-In verwendet werden, bevor das VSTO-Add-In entladen wird. Fügen Sie der ThisAddIn_Shutdown -Methode Code hinzu. Dies ist der Standardereignishandler für das Shutdown -Ereignis. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten". Hinweis: In Outlook wird der ThisAddIn_Shutdown Ereignishandler standardmäßig nicht immer aufgerufen, wenn das VSTO-Add-In entladen wird. Weitere Informationen finden Sie unter "Ereignisse in Office-Projekten".
Zeigen Sie einen benutzerdefinierten Aufgabenbereich an. Verwenden Sie das Feld CustomTaskPanes . Weitere Informationen finden Sie unter "Benutzerdefinierte Aufgabenbereiche".
Machen Sie Objekte im VSTO-Add-In für andere Microsoft Office-Projektmappen verfügbar. Überschreiben Sie die RequestComAddInAutomationService -Methode. Weitere Informationen finden Sie unter Anrufcode in VSTO-Add-Ins aus anderen Office-Lösungen.
Passen Sie eine Funktion im Microsoft Office System an, indem Sie eine Erweiterbarkeitsschnittstelle implementieren. Überschreiben Sie die RequestService -Methode , um eine Instanz einer Klasse zurückzugeben, die die Schnittstelle implementiert. Weitere Informationen finden Sie unter Anpassen von UI-Features mithilfe von Erweiterbarkeitsschnittstellen. Hinweis: Zum Anpassen der Menüband-Benutzeroberfläche können Sie die CreateRibbonExtensibilityObject Methode auch überschreiben.

Grundlegendes zum Design der ThisAddIn-Klasse

In Projekten, die auf .NET Framework 4 abzielen, AddIn handelt es sich um eine Schnittstelle. Die ThisAddIn -Klasse wird aus der AddInBase -Klasse abgeleitet. Diese Basisklasse leitet alle Aufrufe an seine Member an eine interne Implementierung der AddIn Schnittstelle in der Visual Studio-Tools für Office-Laufzeit um.

In VSTO-Add-In-Projekten für Outlook wird die ThisAddIn Klasse von der Microsoft.Office.Tools.Outlook.OutlookAddIn Klasse in Projekten abgeleitet, die auf .NET Framework 3.5 abzielen, und aus OutlookAddInBase Projekten, die auf .NET Framework 4 abzielen. Diese Basisklassen stellen einige zusätzliche Funktionen zur Unterstützung von Formularbereichen bereit. Weitere Informationen zu Formularbereichen finden Sie unter Erstellen von Outlook-Formularbereichen.

Anpassen der Benutzeroberfläche von Microsoft Office-App lizenzen

Sie können die Benutzeroberfläche von Microsoft Office-Anwendungen programmgesteuert anpassen, indem Sie ein VSTO-Add-In verwenden. Beispielsweise können Sie das Menüband anpassen, einen benutzerdefinierten Aufgabenbereich anzeigen oder in Outlook einen benutzerdefinierten Formularbereich erstellen. Weitere Informationen finden Sie in der Anpassung der Office-Benutzeroberfläche.

Visual Studio stellt Designer und Klassen bereit, die Sie zum Erstellen von benutzerdefinierten Aufgabenbereichen, Menübandanpassungen und Outlook-Formularbereichen verwenden können. Diese Designer und Klassen vereinfachen das Anpassen dieser Funktionen. Weitere Informationen finden Sie unter "Benutzerdefinierte Aufgabenbereiche", "Menüband-Designer" und "Erstellen von Outlook-Formularbereichen".

Wenn Sie eine dieser Funktionen auf eine Weise anpassen möchten, die von den Klassen und Designern nicht unterstützt wird, können Sie diese Funktionen auch anpassen, indem Sie in Ihrem VSTO-Add-In eine Erweiterbarkeitsschnittstelle implementieren. Weitere Informationen finden Sie unter Anpassen von UI-Features mithilfe von Erweiterbarkeitsschnittstellen.

Darüber hinaus können Sie die Benutzeroberfläche von Word-Dokumenten und Excel-Arbeitsmappen ändern, indem Sie Hostelemente generieren, mit denen das Verhalten von Dokumenten und Arbeitsmappen erweitert wird. Dies ermöglicht Ihnen das Hinzufügen von verwalteten Steuerelementen zu Dokumenten und Arbeitsblättern. Weitere Informationen finden Sie unter Erweitern von Word-Dokumenten und Excel-Arbeitsmappen in VSTO-Add-Ins zur Laufzeit.

Aufrufen von Code in VSTO-Add-Ins aus anderen Lösungen

Sie können Objekte in Ihrem VSTO-Add-In für andere Projektmappen verfügbar machen, z. B. andere Office-Projektmappen. Dies ist hilfreich, wenn Ihr VSTO-Add-In einen Dienst bereitstellt, der durch andere Projektmappen verwendet werden soll. Wenn Sie beispielsweise über ein VSTO-Add-In für Microsoft Office Excel verfügen, das Berechnungen für Finanzdaten von einem Webdienst ausführt, können andere Lösungen diese Berechnungen ausführen, indem Sie zur Laufzeit das Excel VSTO-Add-In aufrufen.

Weitere Informationen finden Sie unter Anrufcode in VSTO-Add-Ins aus anderen Office-Lösungen.