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 betreffen VSTO-Add - in-Projekte. Weitere Informationen finden Sie unter verfügbare Funktionen nach Office-Anwendung und Projekttyp.

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 Arten von Lösungen, die Sie mithilfe der Office-Entwicklungstools in Visual Studio erstellen können, finden Sie unter Office Solutions Development Overview (VSTO).

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 ) oder Visual Basic ThisAddIn.cs (in C#) in Ihrem VSTO-Add-In-Projekt. Die Visual Studio-Tools für Office-Laufzeit instanziiert diese Klasse automatisch für Sie, wenn die Microsoft Office-Anwendung 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 das -Feld verwenden, um eine neue Arbeitsmappe in einem Application VSTO-Add-In für Microsoft Office Excel. Dieses Beispiel ist für die Ausführung über die ThisAddIn -Klasse bestimmt.

Dim newWorkbook As Excel.Workbook = Me.Application.Workbooks.Add()
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 -Objekt Globals finden Sie unter Globaler Zugriff auf Objekte in Office Projekten.

Dim newWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.Workbooks.Add()
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 gestartet wird

Nicht in allen Office 2010 -Anwendungen wird ein Dokument automatisch geöffnet, wenn Sie die Anwendung starten, und in keiner Office 2013 -Anwendung wird ein Dokument geöffnet, wenn Sie sie starten. Fügen Sie daher keinen Code im Ereignishandler hinzu, wenn der ThisAdd-In_Startup Code erfordert, dass ein Dokument geöffnet ist. Fügen Sie stattdessen diesen Code einem Ereignis hinzu, welches durch die Office-Anwendung ausgelöst wird, wenn vom Benutzer ein Dokument erstellt oder geöffnet wird. 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.
        }
    }
Private Sub ThisAddIn_Startup() Handles Me.Startup

    AddHandler Application.NewDocument, AddressOf WorkWithDocument

End Sub

Private Sub WorkWithDocument(ByVal Doc As Microsoft.Office.Interop.Word.Document) _
    Handles Application.DocumentOpen

    Dim rng As Word.Range = Doc.Range(Start:=0, End:=0)
    rng.Text = " New Text "
    rng.Select()

End Sub

ThisAddIn-Member, die für andere Aufgaben verwendet werden

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 Ereignishandler nicht immer aufgerufen, wenn das ThisAddIn_Shutdown 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 Aufrufen von Code in VSTO-Add-Ins ausanderen 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 Benutzeroberflächenfeatures mithilfe von Erweiterbarkeitsschnittstellen. Hinweis: Um die Menübandbenutzeroberfläche anzupassen, können Sie auch die -Methode CreateRibbonExtensibilityObject überschreiben.

Verstehen des Entwurfs der ThisAddIn-Klasse

In Projekten, die auf .NET Framework 4ausgerichtet sind, ist AddIn eine Schnittstelle. Die ThisAddIn -Klasse wird aus der AddInBase -Klasse abgeleitet. Diese Basisklasse leitet alle Aufrufe ihrer Member an eine interne Implementierung der AddIn -Schnittstelle in der Visual Studio-Tools für Office-Laufzeitum.

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

Anpassen der Benutzeroberfläche Microsoft Office Anwendungen

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 unter Office Ui customization (Anpassen der 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-Designerund Outlook Formularbereich erstellen.

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 Benutzeroberflächenfeatures 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 aus 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 Aufrufen von Code in VSTO Add-Ins ausanderen Office Lösungen.

Siehe auch