當您透過建立 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 會在 VSTO 增益集專案的 ThisAddIn.vb (在 Visual Basic 中) 或 ThisAddIn.cs (在 C# 中) 程式碼檔案中自動產生此類別。 當 Microsoft Office 應用程式載入 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 專案 | Microsoft.Office.Interop.MSProject.Application |
| Microsoft Office Visio | Microsoft.Office.Interop.Visio.Application |
| Microsoft Office Word | Application |
下列程式碼範例示範如何使用欄位 Application 在 Microsoft Office Excel 的 VSTO 增益集中建立新的活頁簿。 此範例旨在從ThisAddIn 類別中執行。
若要在 ThisAddIn 類別外執行相同操作,請使用 Globals 物件來存取 ThisAddIn 類別。 如需物件的詳細資訊 Globals ,請參閱 Office 專案中物件的全域存取。
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.
}
}
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 類別。 此基類會將對其成員的所有呼叫重新導向到 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 應用程式的使用者介面
您可以使用 VSTO 增益集,以程式設計方式自訂 Microsoft Office 應用程式的 UI。 例如,您可以自訂功能區、顯示自訂工作窗格,或在 Outlook 中建立自訂表單區域。 如需詳細資訊,請參閱 Office UI 自訂。
Visual Studio 提供設計工具和類別,可用來建立自訂工作窗格、功能區自訂和 Outlook 表單區域。 這些設計工具和類別有助於簡化自訂這些功能的程式。 如需詳細資訊,請參閱 自訂工作窗格、 功能區設計工具和 建立 Outlook 表單區域。
如果您想要以類別和設計工具不支援的方式自訂其中一個功能,您也可以在 VSTO 增益集中實作 擴充性介面 來自訂這些功能。 如需詳細資訊,請參閱 使用擴充性介面自訂 UI 功能。
此外,您可以產生擴充文件和活頁簿行為的主機項目,以修改 Word 文件和 Excel 活頁簿的 UI。 這可讓您將受控項新增至文件和工作表。 如需詳細資訊,請參閱 在執行時間於 VSTO 外掛程式中擴充 Word 文件和 Excel 活頁簿。
從其他解決方案呼叫 VSTO 增益集中的程式碼
您可以將 VSTO 增益集中的物件公開給其他解決方案,包括其他 Office 解決方案。 如果您的 VSTO 增益集提供的服務需要讓其他解決方案使用,那麼這會很有用。 例如,如果您有適用於 Microsoft Office Excel 的 VSTO 增益集,可對來自 Web 服務的財務資料執行計算,則其他解決方案可以在執行階段呼叫 Excel VSTO 增益集來執行這些計算。
如需詳細資訊,請參閱 從其他 Office 解決方案呼叫 VSTO 增益集中的程式碼。