撰寫 Office 方案中的程式碼
在 Office 專案中撰寫程式碼,在某些方面會與在 Visual Studio 中撰寫其他類型的專案不同。 在這些差異中,有許多都是與將 Office 物件模型公開為 Managed 程式碼的方式有關。 其他差異則是與 Office 專案的設計有關。
**適用於:**本主題中的資訊適用於 Microsoft Office 2010 和 2007 Microsoft Office system 的文件層級專案和應用程式層級專案。 如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能。
Managed 程式碼和 Office 程式設計
Automation 是建立整合式 Microsoft Office 方案的主要技術,也是元件物件模型 (Component Object Model,COM) 技術的一部分。 Automation 可以讓您使用程式碼,建立及控制可由支援程式設計介面的任何應用程式、DLL 或 ActiveX 控制項所公開的軟體物件。
了解主要 Interop 組件
Microsoft Office 應用程式將許多功能公開給 Automation。 但是,您不能直接使用 Managed 程式碼 (例如 Visual Basic 或 C#) 自動化 Office 應用程式。 若要使用 Managed 程式碼自動化 Office 應用程式,則必須使用 Office 主要 Interop 組件 (PIA)。 主要 Interop 組件可讓 Managed 程式碼與 Office 應用程式的 COM 物件模型互動。
每一種 Microsoft Office 應用程式都有 PIA。 當您在 Visual Studio 中建立 Office 專案時,會自動在專案中加入適當 PIA 的參考。 若要自動化來自專案的其他 Office 應用程式功能,則必須手動加入適當 PIA 的參考。 如需詳細資訊,請參閱 HOW TO:透過主要 Interop 組件以 Office 應用程式為目標。
在設計階段和執行階段使用主要 Interop 組件
您必須在開發電腦的全域組件快取內安裝並註冊 Office PIA,才能執行大部分的開發工作。 如需詳細資訊,請參閱設定電腦以開發 Office 方案。
也必須在使用者電腦上安裝 PIA,才能執行目標是 .NET Framework 3.5 的 Office 方案。 不過,使用者電腦上不需要 Office PIA,就可以執行目標是 .NET Framework 4 的 Office 方案。 如需詳細資訊,請參閱設計和建立 Office 方案。
使用主要 Interop 組件中的型別
Office PIA 同時包含會公開 Office 應用程式物件模型的型別,以及其他不適合直接在程式碼中使用的基礎結構型別。 如需 Office PIA 中的型別概觀,請參閱Overview of Classes and Interfaces in the Office Primary Interop Assemblies。
因為 Office PIA 中的型別相當於 COM 物件模型中的型別,所以這些型別的使用方式通常會與其他 Managed 型別不同。 例如,如果方法具有 Office 主要 Interop 組件中的選擇性參數,則其呼叫方式取決於您在專案中使用的程式語言。 如需詳細資訊,請參閱下列主題:
Office 專案的程式撰寫模型
所有 Office 專案都會包括一種或多種產生的類別,而這些類別提供程式碼的進入點。 這些類別也可以存取主應用程式的物件模型,以及存取動作窗格和自訂工作窗格這類功能。
了解產生的類別
在 Excel 和 Word 的文件層級專案中,產生的類別會與應用程式之物件模型中的最上層物件類似。 例如,Word 文件專案中之產生的 ThisDocument 類別與 Word 物件模型中的 Microsoft.Office.Interop.Word.Document 類別提供相同的成員。 如需文件層級專案中產生之類別的詳細資訊,請參閱文件層級自訂程式設計。
應用程式層級專案提供稱為 ThisAddIn 的產生的類別。 這個類別與主應用程式之物件模型中的類別不同。 這個類別代表增益集本身,而且提供的成員可用來存取主應用程式的物件模型,以及存取增益集可用的其他功能。 如需詳細資訊,請參閱應用程式層級增益集程式設計。
Office 專案中的所有產生的類型會包括 Startup 和 Shutdown 事件處理常式。 在您開始撰寫程式碼時,一般會在這些事件處理常式中加入程式碼。 若要初始化增益集,您可以將程式碼加入至 Startup 事件處理常式。 若要清除增益集使用的資源,則可將程式碼加入至 Shutdown 事件處理常式。 如需詳細資訊,請參閱 Office 專案中的事件。
在執行階段存取產生的類別
載入 Office 方案時,Visual Studio Tools for Office Runtime 會具現化您專案中每個產生的類別。 您可以使用 Globals 類別,從專案的任何程式碼中存取這些物件。 例如,您可以使用 Globals 類別,從應用程式層級增益集中 [功能區] 按鈕的事件處理常式呼叫 ThisAddIn 類別中的程式碼。
如需詳細資訊,請參閱全域存取 Office 專案中的物件。
請參閱
工作
HOW TO:透過主要 Interop 組件以 Office 應用程式為目標
概念
在 Office 方案中使用 Visual Basic 或 Visual C# 進行程式設計