程式 VSTO 增益集

當您建立 VSTO 增益集來擴充 Microsoft Office 應用程式時,會直接針對專案中的 ThisAddIn 類別撰寫程式碼。 您可以使用這個類別來執行工作,例如存取 Microsoft Office 主應用程式的物件模型、自訂應用程式的使用者介面 (UI),以及將 VSTO 增益集中的物件公開給其他 Office 解決方案。

適用于: 本主題中的資訊適用于專案中的 VSTO [加入] - 。 如需詳細資訊,請參閱 依 Office 應用程式和專案類型提供的功能

撰寫 VSTO 增益集專案中的程式碼,在某些方面不同於撰寫 Visual Studio 中其他類型專案的程式碼。 其中有許多差異的原因來自於將 Office 物件模型公開給 Managed 程式碼的方式。 如需詳細資訊,請參閱在 Office 方案中撰寫程式碼

如需 VSTO 增益集和其他類型方案的一般資訊,您可以使用 Visual Studio 中的 Office 開發工具來建立,請參閱Office 解決方案開發總覽 (VSTO)。

使用 ThisAddIn 類別

您可以在 ThisAddIn 類別中開始撰寫 VSTO 增益集程式碼。 Visual Studio 會在 ) 增益集專案中 (,于 Visual Basic c # VSTO 程式碼檔案中的) 或 ThisAddIn (中,自動產生此類別。 當 Microsoft Office 應用程式載入您的 VSTO 增益集時, Visual Studio Tools for Office Runtime 會自動為您具現化這個類別。

ThisAddIn 類別有兩個預設事件處理常式。 若要在載入 VSTO 增益集時執行程式碼,請將程式碼加入 ThisAddIn_Startup 事件處理常式中。 若要在卸載 VSTO 增益集之前執行程式碼,請將程式碼加入 ThisAddIn_Shutdown 事件處理常式。 如需這些事件處理常式的詳細資訊,請參閱Office 專案中的事件

注意

在 Outlook 中,當卸載 VSTO 增益集時,預設不一定會呼叫 ThisAddIn_Shutdown 事件處理常式。 如需詳細資訊,請參閱Office 專案中的事件

存取主應用程式的物件模型

若要存取主應用程式的物件模型,請使用 Application 類別的 ThisAddIn 欄位。 這個欄位會傳回代表主應用程式之目前執行個體的物件。 下表列出每個 VSTO 增益集專案中 Application 欄位的傳回值類型。

主應用程式 傳回值類型
Microsoft Office Excel Application
Microsoft Office InfoPath Application
Microsoft Office Outlook Application
Microsoft Office PowerPoint 應用程式
Microsoft Office Project Microsoft.Office.Interop.MSProject.Application
Microsoft Office Visio Microsoft.Office.Interop.Visio.Application
Microsoft Office Word Application

下列程式碼範例示範如何使用 Application 欄位,在適用于 Microsoft Office Excel 的 VSTO 增益集中建立新的活頁簿。 這個範例適合從 ThisAddIn 類別執行。

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

若要從 ThisAddIn 類別外執行相同的動作,請使用 Globals 物件存取 ThisAddIn 類別。 如需物件的詳細資訊 Globals ,請參閱全域存取 Office 專案中的物件

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

如需特定的 Microsoft Office 應用程式之物件模型的詳細資訊,請參閱下列主題:

在 Office 應用程式啟動時存取檔

當您啟動 Office 2010 應用程式時,並非所有應用程式都會自動開啟文件;而當您啟動 Office 2013 應用程式時,所有應用程式都不會開啟文件。 因此, ThisAdd-In_Startup 如果程式碼需要開啟檔,就不會在事件處理常式中加入程式碼。 相反地,請將程式碼加入 Office 應用程式在使用者建立或開啟文件時所引發的事件。 如此可確保程式碼對文件執行作業之前,該文件已處於開啟狀態。

下列程式碼範例只有在使用者建立文件或開啟現有文件時,才適用於 Word 文件。

    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 成員

下表說明其他常見工作,並顯示可以用來執行這些工作的 ThisAddIn 類別。

工作 要使用的成員
載入 VSTO 增益集時,執行程式碼以初始化 VSTO 增益集。 將程式碼加入 ThisAddIn_Startup 方法。 這是 Startup 事件的預設事件處理常式。 如需詳細資訊,請參閱Office 專案中的事件
卸載 VSTO 增益集之前,執行程式碼以清除 VSTO 增益集所使用的資源。 將程式碼加入 ThisAddIn_Shutdown 方法。 這是 Shutdown 事件的預設事件處理常式。 如需詳細資訊,請參閱Office 專案中的事件注意: 在 Outlook 中,預設 ThisAddIn_Shutdown 不會在卸載 VSTO 增益集時,一律呼叫事件處理常式。 如需詳細資訊,請參閱Office 專案中的事件
顯示自訂工作窗格。 使用 CustomTaskPanes 欄位。 如需詳細資訊,請參閱 自訂工作窗格
將 VSTO 增益集中的物件公開給其他 Microsoft Office 方案。 覆寫 RequestComAddInAutomationService 方法。 如需詳細資訊,請參閱從其他 Office 方案 VSTO 增益集呼叫程式碼
實作擴充性介面來自訂 Microsoft Office system 中的功能。 覆寫 RequestService 方法以傳回實作介面的類別執行個體。 如需詳細資訊,請參閱使用擴充性 介面自訂 UI 功能注意: 若要自訂功能區 UI,您也可以覆寫 CreateRibbonExtensibilityObject 方法。

瞭解 ThisAddIn 類別的設計

在以 .NET Framework 4為目標的專案中, AddIn 是一種介面。 ThisAddIn 類別衍生自 AddInBase 類別。 這個基底類別會將其成員的所有呼叫重新導向至 AddIn 中 Visual Studio Tools for Office Runtime介面的內部實作。

在 Outlook VSTO 增益集專案中,ThisAddIn 類別是衍生自以 .NET Framework 3.5 為目標之專案中的 Microsoft.Office.Tools.Outlook.OutlookAddIn 類別,以及以 .NET Framework 4 為目標之專案中的 OutlookAddInBase。 這些基底類別提供了一些額外的功能來支援表單區域。 如需表單區域的詳細資訊,請參閱建立 Outlook 表單區域

自訂 Microsoft Office 應用程式的使用者介面

您可以使用 VSTO 增益集,以程式設計方式自訂 Microsoft Office 應用程式的 UI。 例如,您可以自訂功能區、顯示自訂工作窗格,或建立 Outlook 的自訂表單區域。 如需詳細資訊,請參閱Office UI 自訂

Visual Studio 提供可用來建立自訂工作窗格、功能區自訂和 Outlook 表單區域的設計工具和類別。 這些設計工具和類別有助於簡化自訂這些功能的程序。 如需詳細資訊,請參閱自訂工作窗格功能區設計工具,以及建立 Outlook 的表單區域

如果您想要使用類別和設計工具不支援的方式,來自訂上述其中一項功能,您也可以透過在 VSTO 增益集中實作 「擴充性介面」 (Extensibility Interface),來自訂這些功能。 如需詳細資訊,請參閱使用擴充性 介面自訂 UI 功能

此外,您也可以藉由產生可擴充文件和活頁簿行為的主項目,來修改 Word 文件和 Excel 活頁簿的 UI。 這可讓您將 Managed 控制項加入文件和工作表。 如需詳細資訊,請參閱在執行時間 VSTO 增益集擴充 Word 檔和 Excel 活頁簿

從其他方案呼叫 VSTO 增益集的程式碼

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

如需詳細資訊,請參閱從其他 Office 方案 VSTO 增益集呼叫程式碼

另請參閱