程式 VSTO 載入宏

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

適用於: 本主題中的資訊適用於 VSTO 載入宏專案。 如需詳細資訊,請參閱 Office 應用程式 lication 和項目類型所提供的功能。

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

如需使用 Visual Studio 中的 Office 開發工具建立之 VSTO 載入宏和其他類型解決方案的一般資訊,請參閱 Office 方案開發概觀 (VSTO)

使用 ThisAddIn 類別

您可以在 ThisAddIn 類別中開始撰寫 VSTO 增益集程式碼。 Visual Studio 會在 VSTO 載入宏專案中的 ThisAddIn.vb 或 ThisAddIn.cs (在 C#) 程式代碼檔案中自動產生這個類別。 當 Microsoft Office 應用程式 lication 載入 VSTO 載入宏時,Visual Studio Tools for Office 運行時間會自動為您具現化此類別。

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 類別執行。

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

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

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

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

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

並非所有的 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.
        }
    }

ThisAddIn 成員用於其他工作

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

Task 要使用的成員
載入 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 類別。 這個基類會將所有呼叫重新導向至 Visual Studio Tools for Office 運行時間 中介面的內部實作 AddIn

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

自定義 Microsoft Office 應用程式 lications 的使用者介面

您可以使用 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 載入宏中的程式代碼。