文件層級自訂的架構

Visual Studio 2010 包含的專案可以建立 Microsoft Office Word 和 Microsoft Office Excel 的文件層級自訂。 本主題說明文件層級自訂的下列各方面:

  • 了解自訂

  • 自訂的元件

  • 自訂如何與 Microsoft Office 應用程式搭配運作

**適用於:**本主題中的資訊適用於下列應用程式的文件層級專案:Excel 2007 和 Excel 2010、Word 2007 和 Word 2010。如需詳細資訊,請參閱依 Office 應用程式和專案類型提供的功能

如需建立文件層級自訂的一般資訊,請參閱 Office 方案開發概觀Word 文件層級自訂的程式設計入門Excel 文件層級自訂的程式設計入門

了解自訂

當您使用 Visual Studio 中的 Office 開發人員工具建置文件層級自訂時,會建立與特定文件相關聯的 Managed 程式碼組件。 文件或活頁簿中若是有連結的組件就稱為具有 Managed 程式碼擴充。 如需詳細資訊,請參閱 Office 方案中的組件概觀

當使用者開啟文件時,Microsoft Office 應用程式會載入組件。 載入組件之後,自訂就能回應文件開啟時的事件。 自訂還可以呼叫物件模型 (Object Model) 在文件開啟時自動化並擴充應用程式,而且它可以使用 .NET Framework 中的任何類別 (Class)。

組件會透過應用程式的主要 Interop 組件與應用程式的 COM 元件進行通訊。 如需詳細資訊,請參閱 Office 主要 Interop 組件Office 方案開發概觀

如果使用者同時開啟多個文件層級自訂,則每一個組件會在不同的應用程式定義域中載入。 這意味著如果某個方案運作失常,並不會導致其他方案失敗。 文件層級自訂是設計與單一應用程式定義域中的單一文件一起運作。 它們的設計不是在於跨文件進行通訊。 如需應用程式定義域的詳細資訊,請參閱應用程式定義域

注意事項注意事項

您使用 Visual Studio 中的 Office 開發人員工具建立的文件層級自訂,是設計為只在使用者啟動應用程式時使用。 如果是以程式設計的方式啟動應用程式 (例如,使用 Automation),則自訂可能無法如預期般運作。

設計階段和執行階段經驗

了解設計和執行方案的經驗,可以幫助您了解文件層級自訂的架構。

設計階段

設計階段經驗包含下列步驟:

  1. 開發人員在 Visual Studio 中建立文件層級的專案。 專案包括文件以及在文件背後執行的組件。 文件可以是已經存在的文件 (或許是由其他設計人員建立的),也可以與專案一起建立新文件。

  2. 設計人員 (建立專案的開發人員,或是其他人員) 為使用者建立文件的最終外觀和感覺。

執行階段

執行階段經驗包含下列步驟:

  1. 使用者開啟具有 Managed 程式碼擴充的文件或活頁簿。

  2. 文件或活頁簿載入已編譯的組件。

  3. 組件在使用者處理文件或活頁簿時回應事件。

開發人員和使用者觀點比較

由於開發人員主要是在 Visual Studio 中進行開發,而使用者則是在 Word 或 Excel 中工作,所以有兩種方向可以了解文件層級自訂。

開發人員的觀點

使用者的觀點

開發人員可以使用 Visual Studio 撰寫 Word 和 Excel 能夠存取的程式碼。

雖然看起來開發人員好像是要建立會執行 Word 或 Excel 的可執行檔,但是處理序實際運作的方式卻正好相反。 文件會與一個組件關聯,並且含有指向這個組件的指標。 當文件開啟時,Word 或 Excel 會尋找這個組件並且執行程式碼來回應所有要處理的事件。

要使用這個方案的使用者只需要開啟文件或活頁簿 (或者從範本建立新文件),就像開啟任何其他 Microsoft Office 檔案一樣。

組件會提供文件或活頁簿中的自訂值,例如用目前的資料自動填入,或顯示對話方塊要求輸入資訊。

文件層級自訂所支援的文件格式

當您建立自訂專案時,可以選擇要在專案中使用的文件格式。 如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案

下表列出您可以在 Excel 和 Word 文件層級自訂中使用的文件格式。

Excel

Word

Excel 活頁簿 (.xlsx)

Excel 啟用巨集的活頁簿 (.xlsm)

Excel 二進位活頁簿 (.xlsb)

Excel 97-2003 活頁簿 (.xls)

Excel 範本 (.xltx)

Excel 啟用巨集的範本 (.xltm)

Excel 97-2003 範本 (.xlt)

Word 文件 (.docx)

Word 啟用巨集的文件 (.docm)

Word 97-2003 文件 (.doc)

Word 範本 (.dotx)

Word 啟用巨集的範本 (.dotm)

Word 97-2003 範本 (.dot)

您只能以支援的格式為文件設計 Managed 程式碼擴充。 否則,當文件在應用程式中開啟時,可能會無法引發特定事件。 例如,對以 Excel XML 試算表格式或以網頁 (.htm、.html) 格式儲存的活頁簿使用 Managed 程式碼擴充時,就不會引發 Open 事件。

支援具有 .xml 副檔名的 Word 文件

文件層級專案範本不允許您建立以下列檔案格式為基礎的專案:

  • Word XML 文件 (*xml)。

  • Word 2003 XML 文件 (*xml)。

如果您希望使用者使用這些檔案格式的自訂,請將自訂建置和部署為使用上表指定的其中一個支援的檔案格式。 安裝自訂之後,使用者可以將文件儲存為 Word XML 文件 (*xml) 格式或 Word 2003 XML 文件 (*xml) 格式,自訂仍會如預期地繼續運作。

自訂的元件

自訂的主要成分是文件和組件。 除了這些成分之外,還有其他數個項目在 Microsoft Office 應用程式探索和載入自訂的方式中扮演重要角色。

部署資訊清單和應用程式資訊清單

自訂會使用部署資訊清單和應用程式資訊清單來識別及載入最新版的自訂組件。 部署資訊清單會指向目前的應用程式資訊清單。 而應用程式資訊清單會指向自訂組件,並指定組件中要執行的進入點 (Entry Point) 類別。 如需詳細資訊,請參閱Office 方案中的應用程式和部署資訊清單

Visual Studio Tools for Office Runtime

若要執行使用 Visual Studio 中的 Office 開發人員工具所建立的文件層級自訂,使用者電腦必須已安裝 Visual Studio Tools for Office Runtime。 Visual Studio Tools for Office Runtime 包含會載入自訂組件和一組 Managed 組件的 Unmanaged 元件。 這些 Managed 組件則會提供自訂程式碼用於自動化和擴充主應用程式 (Host Application) 的物件模型。

如需詳細資訊,請參閱 Visual Studio Tools for Office Runtime 概觀

自訂如何與 Microsoft Office 應用程式搭配運作

使用者開啟屬於 Microsoft Office 自訂一部分的文件時,應用程式會使用與該文件連結的部署資訊清單來找出並載入最新版的自訂組件。 部署資訊清單的位置儲存在名為 _AssemblyLocation 的自訂文件屬性中。 建置方案時,識別這個位置的字串會插入至這個屬性。

部署資訊清單會指向應用程式資訊清單,而應用程式資訊清單則會指向最新的組件。 如需詳細資訊,請參閱 Office 方案中的應用程式和部署資訊清單

下圖顯示文件層級自訂的基本架構。

自訂架構

2007 Office 自訂架構

注意事項注意事項

在目標為 .NET Framework 4 的 Office 方案中,方案會使用內嵌於方案組件中的 PIA 型別資訊呼叫主應用程式的物件模型,而不會直接呼叫 PIA。 如需詳細資訊,請參閱設計和建立 Office 方案

載入處理序

下列步驟會在開啟屬於 Microsoft Office 方案一部分的文件時發生:

  1. Microsoft Office 應用程式檢查自訂文件屬性,查看文件是否具有關聯的 Managed 程式碼擴充。 如需詳細資訊,請參閱自訂文件屬性概觀

  2. 如果有 Managed 程式碼擴充,應用程式會載入 VSTOEE.dll,而這個檔案會載入 VSTOLoader.dll。 這些都是 Unmanaged DLL,而且是 Visual Studio 2010 Tools for Office Runtime 的載入器元件。 如需詳細資訊,請參閱 Visual Studio Tools for Office Runtime 概觀

  3. VSTOLoader.dll 會載入 .NET Framework 並啟動 Visual Studio Tools for Office Runtime 的 Managed 部分。

  4. 如果是從本機電腦以外的位置開啟文件,Visual Studio Tools for Office Runtime 會確認文件的位置是否在該特定 Office 應用程式之 [信任中心設定] 的 [信任位置] 清單中。 如果文件的位置不是在信任的位置,就不會信任自訂,而載入程序在這裡停止。

  5. Visual Studio Tools for Office Runtime 會安裝方案 (如果還沒安裝)、下載最新的應用程式和部署資訊清單,並且執行一系列的安全性檢查。 如需詳細資訊,請參閱 保護 Office 方案

  6. 如果自訂受到信任而得以執行,則 Visual Studio Tools for Office Runtime 會使用部署資訊清單和應用程式資訊清單來檢查組件更新。 如果有新版的組件可用,Runtime 就會將新版的組件下載至用戶端電腦上的 ClickOnce 快取。 如需詳細資訊,請參閱部署 Office 方案

  7. Visual Studio Tools for Office Runtime 建立要載入自訂組件的新應用程式定義域。

  8. Visual Studio Tools for Office Runtime 將組件載入至應用程式定義域中。

  9. Visual Studio Tools for Office Runtime 呼叫自訂組件中的 Startup 事件處理常式。 如需詳細資訊,請參閱 Office 專案中的事件

請參閱

概念

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

Visual Studio Tools for Office Runtime 概觀

自訂文件屬性概觀

文件層級自訂中的快取資料

其他資源

Office 方案在 Visual Studio 中的架構

保護 Office 方案

設計和建立 Office 方案