在應用程式層級增益集中呼叫其他 Office 方案的程式碼

更新:2007 年 11 月

適用於

本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。

專案類型

  • 應用程式層級專案

Microsoft Office 版本

  • 2007 Microsoft Office system

  • Microsoft Office 2003

如需詳細資訊,請參閱依應用程式和專案類型提供的功能

您可以將增益集中的物件公開 (Expose) 給其他 Microsoft Office 方案。如果您想要讓其他 Office 方案也能使用增益集提供的服務時,這就很有用。例如,如果有個 Microsoft Office Excel 增益集會計算 Web 服務提供的財務資料,則其他 Office 方案可以在執行階段呼叫這個 Excel 增益集來執行這些計算。

Visual Studio Tools for Office 同時可針對文件層級自訂提供類似的功能。如果您在開發 2007 Microsoft Office system 適用的自訂,則可以透過文件中的 VBA 程式碼呼叫自訂中的程式碼。如需詳細資訊,請參閱在文件層級自訂中呼叫 VBA 的程式碼

可以呼叫增益集程式碼的 Office 方案

您可以將增益集中的物件公開給下列類型的 Office 方案:

  • 其他 Visual Studio Tools for Office 增益集。

  • 在與增益集相同的應用程式處理序中載入的文件層級自訂。

  • COM 增益集 (即直接實作 IDTExtensibility2 介面的增益集)。

  • 在與增益集相同的應用程式處理序中載入之文件內的 Visual Basic for Applications (VBA) 程式碼。

將物件公開給其他 Office 方案

若要將物件公開給其他增益集,請覆寫 ThisAddIn 類別 (Class) 中的 RequestComAddInAutomationService 方法。傳回想要公開給其他 Office 方案的物件。

載入增益集時,Visual Studio Tools for Office 執行階段會呼叫 RequestComAddInAutomationService 方法。執行階段會將傳回的物件指派給代表增益集之 COMAddIn 物件的 Object 屬性。這個 COMAddIn 物件可供其他 Office 方案使用。

所傳回物件的需求

RequestComAddInAutomationService 的實作所傳回的類別執行個體必須符合下列要求:

如果傳回的物件不符合這些要求,Visual Studio Tools for Office 執行階段就會在呼叫您的實作之後擲回 InvalidCastException

若要查看符合這些需求之類別的範別,請參閱逐步解說:在應用程式層級增益集中呼叫 VBA 的程式碼

範例

下列程式碼範例示範如何覆寫 RequestComAddInAutomationService。這個範例假設您已定義想要公開給其他 Office 方案的 AddInUtilities 類別,而 AddInUtilities 類別符合上面指定的需求。若要在完整的逐步解說內容中查看這個程式碼,請參閱逐步解說:在應用程式層級增益集中呼叫 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;
}

從其他 Office 方案存取物件

請在不同 Office 方案 (不是公開的增益集) 的程式碼中,執行下列步驟:

  1. 取得代表公開之增益集的 COMAddIn 物件。您可以使用 Application 類別的 COMAddIns 屬性來存取所有可用的增益集。

  2. 存取 COMAddIn 物件的 Object 屬性。

下列程式碼範例示範如何使用 VBA 呼叫增益集中的方法。這個 VBA 巨集會呼叫 ExcelImportData 增益集中定義的 ImportData 方法。若要在完整的逐步解說內容中查看這個程式碼,請參閱逐步解說:在應用程式層級增益集中呼叫 VBA 的程式碼

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

請參閱

工作

逐步解說:在應用程式層級增益集中呼叫 VBA 的程式碼

HOW TO:建立 Visual Studio Tools for Office 專案

概念

應用程式層級增益集程式設計

開發 Office 方案

AddIn 主項目

使用擴充性介面自訂 UI 功能

應用程式層級增益集的架構