Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Programmieren von 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.

Betrifft: 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-Projektmappen.

Allgemeine Informationen zu VSTO-Add-Ins und anderen Arten von Projektmappen, die Sie mit den Office-Entwicklungstools in Visual Studio erstellen können, finden Sie unter Übersicht über die Entwicklung von Office-Projektmappen (VSTO).

Sie können mit dem Schreiben des VSTO-Add-In-Codes in der ThisAddIn-Klasse beginnen. Visual Studio generiert diese Klasse in Ihrem VSTO-Add-In-Projekt automatisch in der Codedatei „ThisAddIn.vb“ (in Visual Basic) oder „ThisAddIn.cs“ (in C#). 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.

System_CAPS_noteHinweis

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.

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

Microsoft.Office.Interop.Excel.Application

Microsoft Office InfoPath

T:Microsoft.Office.Interop.InfoPath.Application

Microsoft Office Outlook

T:Microsoft.Office.Interop.Outlook.Application

Microsoft Office PowerPoint

T:Microsoft.Office.Interop.PowerPoint.Application

Microsoft Office Project

Microsoft.Office.Interop.MSProject.Application

Microsoft Office Visio

Microsoft.Office.Interop.Visio.Application

Microsoft Office Word

Microsoft.Office.Interop.Word.Application

Im folgenden Codebeispiel wird veranschaulicht, wie Sie das Feld Application zum Erstellen einer neuen Arbeitsmappe in einem VSTO-Add-In für Microsoft Office Excel verwenden. 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 Globaler 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:

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 dem ThisAdd-In_Startup-Ereignishandler daher keinen Code hinzu, wenn für den Code ein geöffnetes Dokument erforderlich ist. 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.
        }
    }

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.

Task

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.

System_CAPS_noteHinweis

In Outlook wird der ThisAddIn_Startup-Ereignishandler standardmäßig nicht jedes Mal 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 Aufrufen von Code in VSTO-Add-Ins aus anderen Office-Projektmappen.

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 Features der Benutzeroberfläche mithilfe von Erweiterungsschnittstellen.

System_CAPS_noteHinweis

Zum Anpassen der Menüband-Benutzeroberfläche können Sie auch die CreateRibbonExtensibilityObject-Methode außer Kraft setzen.

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

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 Microsoft.Office.Tools.Outlook.OutlookAddInBase abgeleitet. Diese Basisklassen stellen einige zusätzliche Funktionen zur Unterstützung von Formularbereichen bereit. Weitere Informationen zu Formularbereichen finden Sie unter Erstellen von Outlook-Formularbereichen.

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 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, Multifunktionsleisten-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 Features der Benutzeroberfläche mithilfe von Erweiterungsschnittstellen.

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.

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 in Bezug auf finanzielle Daten von einem Webdienst vornimmt, können andere Projektmappen diese Berechnungen ausführen, indem sie ein VSTO-Add-In für Excel zur Laufzeit aufrufen.

Weitere Informationen finden Sie unter Aufrufen von Code in VSTO-Add-Ins aus anderen Office-Projektmappen.

Anzeigen: