Aufrufen von Code in Add-Ins auf Anwendungsebene von anderen Office-Projektmappen

Aktualisiert: November 2007

Betrifft

Die Informationen in diesem Thema gelten nur für die angegebenen Projekte und Versionen von Visual Studio Tools for Office von Microsoft Office.

Projekttyp

  • Projekte auf Anwendungsebene

Microsoft Office-Version

  • 2007 Microsoft Office System

  • Microsoft Office 2003

Weitere Informationen hierzu finden Sie unter Verfügbare Features nach Anwendung und Projekttyp.

Sie können ein Objekt im Add-In für andere Microsoft Office-Projektmappen verfügbar machen. Dies ist nützlich, wenn das Add-In einen Dienst bietet, den auch andere Office-Projektmappen nutzen sollen. Wenn Sie beispielsweise ein Add-In für Microsoft Office Excel haben, das Berechnungen für Finanzdaten von einem Webdienst durchführt, können andere Office-Projektmappen diese Berechnungen durchführen, indem sie das Excel-Add-In zur Laufzeit aufrufen.

Visual Studio Tools for Office stellt auch ein ähnliches Feature für die Anpassungen auf Dokumentebene bereit. Wenn Sie eine Anpassung für 2007 Microsoft Office System entwickeln, können Sie in der Anpassung Code aus dem VBA-Code im Dokument abrufen. Weitere Informationen finden Sie unter Aufrufen von Code in Anpassungen auf Dokumentebene von VBA.

Office-Projektmappen, die Code in einem Add-In aufrufen können

Sie können ein Objekt in einem Add-In für die folgenden Typen von Office-Projektmappen verfügbar machen:

  • Andere Visual Studio Tools for Office-Add-Ins.

  • Anpassungen auf Dokumentebene, die in den gleichen Anwendungsprozess wie das Add-In geladen werden.

  • COM-Add-Ins (d. h. Add-Ins, die die IDTExtensibility2-Schnittstelle direkt implementieren).

  • VBA (Visual Basic for Applications)-Code in einem Dokument, das in den gleichen Anwendungsprozess wie das Add-In geladen wird.

Verfügbarmachen von Objekten für andere Office-Projektmappen

Um ein Objekt für andere Add-Ins verfügbar zu machen, überschreiben Sie die RequestComAddInAutomationService-Methode in der ThisAddIn-Klasse. Geben Sie das Objekt zurück, das Sie für andere Office-Projektmappen verfügbar machen möchten.

Wenn das Add-In geladen wird, ruft die Visual Studio Tools for Office-Laufzeit die RequestComAddInAutomationService-Methode auf. Die Laufzeit weist das zurückgegebene Objekt der Object-Eigenschaft eines COMAddIn-Objekts zu, das das Add-In darstellt. Dieses COMAddIn-Objekt steht anderen Office-Projektmappen zur Verfügung.

Anforderungen des zurückgegebenen Objekts

Die Implementierung von RequestComAddInAutomationService muss eine Instanz einer Klasse zurückgeben, die folgende Anforderungen erfüllt:

Wenn das zurückgegebene Objekt diese Anforderungen nicht erfüllt, löst die Visual Studio Tools for Office-Laufzeit eine InvalidCastException aus, nachdem die Implementierung aufgerufen wurde.

Ein Beispiel für eine Klasse, die diese Anforderungen erfüllt, finden Sie unter Exemplarische Vorgehensweise: Aufrufen von Code in einem Add-In auf Anwendungsebene von VBA.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie RequestComAddInAutomationService überschrieben wird. In diesem Beispiel wird davon ausgegangen, dass Sie eine Klasse namens AddInUtilities definiert haben, die Sie für andere Office-Projektmappen verfügbar machen möchten, und dass die AddInUtilities-Klasse den oben angegebenen Anforderungen entspricht. Eine Darstellung dieses Codes im Kontext einer größeren exemplarischen Vorgehensweise finden Sie unter Exemplarische Vorgehensweise: Aufrufen von Code in einem Add-In auf Anwendungsebene von VBA.

Private utilities As AddInUtilities

Protected Overrides Function RequestComAddInAutomationService() As Object
    If utilities Is Nothing Then
        utilities = New AddInUtilities()
    End If
    Return utilities
End Function
private AddInUtilities utilities;

protected override object RequestComAddInAutomationService()
{
    if (utilities == null)
        utilities = new AddInUtilities();

    return utilities;
}

Zugreifen auf Objekte von anderen Office-Projektmappen

Führen Sie im Code für eine andere Office-Projektmappe (nicht das verfügbar gemachte Add-In) die folgenden Schritte aus:

  1. Rufen Sie das COMAddIn-Objekt ab, das das verfügbar gemachte Add-In darstellt. Sie können mithilfe der COMAddIns-Eigenschaft der Application-Klasse auf alle verfügbaren Add-Ins zugreifen.

  2. Greifen Sie auf die Object-Eigenschaft des COMAddIn-Objekts zu.

Im folgenden Codebeispiel wird veranschaulicht, wie eine Methode mit VBA in einem Add-In aufgerufen wird. Dieses VBA-Makro ruft eine Methode namens ImportData auf, die in einem Add-In namens ExcelImportData definiert ist. Eine Darstellung dieses Codes im Kontext einer größeren exemplarischen Vorgehensweise finden Sie unter Exemplarische Vorgehensweise: Aufrufen von Code in einem Add-In auf Anwendungsebene von VBA.

Sub CallVSTOMethod()
    Dim addIn As COMAddIn
    Dim automationbject As Object
    Set addIn = Application.COMAddIns("ExcelImportData")
    Set automationObject = addIn.Object
    automationObject.ImportData
End Sub

Siehe auch

Aufgaben

Exemplarische Vorgehensweise: Aufrufen von Code in einem Add-In auf Anwendungsebene von VBA

Gewusst wie: Erstellen von Visual Studio Tools for Office-Projekte

Konzepte

Programmieren von Add-Ins auf Anwendungsebene

Entwickeln von Office-Projektmappen

AddIn-Hostelement

Anpassen von Features der Benutzeroberfläche mithilfe von Erweiterungsschnittstellen

Architektur von Add-Ins auf Anwendungsebene