摘要

Microsoft Office Excel 支援自動化增益集除了元件物件模型 (COM) 增益集。本文將說明這兩種增益集類型之間的差異。

更多的資訊

COM 增益集

COM 增益集提供開發人員的擴充功能的自訂工作的 Office 應用程式的一種方法。COM 增益集通常用於將 Excel 自動化回應的 CommandBar 按鈕、 表單或對話方塊中或某些其他事件特定的 Excel 開啟或關閉活頁簿或工作表上輸入資料。無法直接呼叫 COM 增益集函式,從在工作表中的資料格公式。

COM 增益集是在同處理序 COM 伺服器 (ActiveX DLL),都必須實作IDTExensibility2介面。所有的 COM 增益集必須實作這個介面的五種方法的每個: OnConnection」、 「 OnStartupComplete」、 「 OnAddinsUpdate」、 「 OnBeginShutDown和 「 OnDisconnection。

當 COM 增益集安裝在使用者的系統上時,則登錄項目會建立增益集。除了標準的 COM 登錄 COM 增益集會註冊為其執行所在的每個 Office 應用程式。COM 增益集使用的 Excel 都登錄在下列登錄機碼:

                
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\

此機碼含有子機碼的每個已安裝 COM 增益集。子機碼名稱是個 COM 增益集的 ProgID。COM 增益集的子機碼也包含描述 COM 增益集的好記名稱、 描述和載入行為的值。載入行為說明增益集載入方式 xl2002: 載入在啟動時,在只,下次啟動時載入,視情況下,需要載入或未載入。

COM 增益集可以也而載入或卸載透過 Excel 的使用者介面。若要執行這項操作,請參考下列步驟:

  1. 在 [檢視] 功能表中,指向 [工具列,然後按一下 [自訂。

  2. 在 [工具列] 對話方塊中,按一下 [進階] 索引標籤。在類別清單中,選取 [工具]。尋找命令的清單中的 [ COM 增益集,並將它拖曳到功能表或命令列,您所選擇。關閉 [工具列] 對話方塊。

  3. 按一下 [新增至顯示 [ COM 增益集] 對話方塊的 [ COM 增益集] 指令。對話方塊會列出所有 COM 增益集安裝在您的系統上,選取 [COM 增益集目前載入的。

COM 增益集可以也而載入或卸載透過 Excel 的使用者介面。若要執行這項操作,請參考下列步驟:

  1. 按一下 [Microsoft Office 按鈕],然後按一下 [Excel 選項]

  2. 按一下 [增益集]。

  3. 在 [管理] 下按一下 [ COM 增益集],然後按一下

    [ COM 增益集] 對話方塊會列出所有 COM 增益集安裝在電腦上。COM 增益集目前載入的已選取。

有關 COM 增益集的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:

238228如何: 使用 Office 2000 COM 增益集在 Visual Basic 中建置

230689範例: Comaddin.exe Office 2000 COM 增益集以 Visual C++ 的撰寫

如需詳細資訊,請參閱下列 Microsoft 網站:

Office 增益集
http://support.microsoft.com/ofd

自動化增益集

除了 COM 增益集,Excel 支援自動化增益集自動化增益集組建上 COM 增益集,因為可以在 Excel 工作表中的公式從呼叫中自動化增益集的函式。COM 增益集必須是同處理序 COM 伺服器的支援IDTExtensibility2的介面;然而,自動化增益集可以是同處理序或跨處理序 COM 伺服器,而且IDTExtensibility2的實作是選擇性的。

若要在 Excel 中使用自動化增益集從函式,請依照下列步驟執行:

  1. 按一下 [工具] 功能表的 [增益集]。

  2. 在 [增益集] 對話方塊中,按一下 [自動化]。從已註冊的 COM 伺服器清單中,選取您自動化增益集,並按一下[確定]。

  3. 自動化增益集就會出現在 [增益集] 對話方塊中。按一下[確定]以關閉 [增益集] 對話方塊。

若要在 Excel 2007 中和較新,請使用自動化增益集從函式,請依照下列步驟執行:

  1. 按一下 [Microsoft Office 按鈕],然後按一下 [Excel 選項]

  2. 按一下 [增益集]。

  3. 在 [管理] 下按一下Excel 增益集],然後按一下 [ Go

  4. 在 [增益集] 對話方塊中,按一下 [自動化]。在已註冊的 COM 伺服器清單中,按一下您自動化增益集,,然後按一下[確定]

    自動化增益集就會出現在 [增益集] 對話方塊中。按一下[確定]以關閉 [增益集] 對話方塊。

當您加入清單的項目在 [增益集] 對話方塊中,或當您選取並清除 [在] 清單中的 [增益集,Excel 會在登錄中儲存您的變更。首先,Excel 會使用下列的登錄設定,決定自動化增益集增益集清單中載入:

 Excel 2002
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"

Excel 2003
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"
Excel 2007
Key: HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Options
String: OPENx
Sample Value: /A "ServerName.ClassName"

注意: 變更根據您所使用的版本的 Office 版本號碼。


/A參數的字串值中使用的是 Excel 新手和較舊,並特別用於載入自動化增益集。所有的自動化增益集載入視;沒有設定可以變更自動化增益集的載入行為。

清除自動化增益集增益集] 對話方塊中所列時,以等於增益集的 ProgID 名稱的子機碼會建立下列登錄機碼:


HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Add-in Manager
Excel 2003:

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Add-in Manager
此登錄設定可確保自動化增益集,您加入至增益集] 清單會保留在清單中,即使您選擇不要載入它們。

如需有關自動化增益集,請參閱下列文件的 「 Microsoft 知識庫 」 中的文:

285337如何: 建立 Visual Basic 的自動化增益集的 Excel 工作表函數

如需詳細資訊,請參閱下列 Microsoft 網站:

Office 增益集
http://support.microsoft.com/ofd

實作 IDTExtensibility2 的自動化增益集

如先前所述,自動化增益集可能會實作IDTExtensibility2,但是它並不需要用於 Excel 增益集中呼叫函式,從工作表的順序。如果您需要自動化增益集取得 Excel 執行個體的參考,您可以實作IDTExtensibility2 ,並自動化 Excel 時,用於OnConnection的應用程式參數。

自動化增益集實作
在 Excel 使用者介面,透過 [增益集] 對話方塊和 [ COM 增益集] 對話方塊中,可以載入IDTExtensibility2 。以下說明的自動化增益集根據是否載入一或兩個對話方塊中的行為:

  • 僅載入增益集] 對話方塊。

    增益集視需要載入。從工作表中的公式,就可能會呼叫增益集中的函式。

  • 只在 [ COM 增益集] 對話方塊中載入。

    增益集載入為 COM 增益集和其載入行為會從登錄中的設定來決定。從工作表中的公式,就不能呼叫增益集中的函式。

  • 載入的增益集] 對話方塊和 [ COM 增益集] 對話方塊。

    會載入增益集的兩個不同的執行個體。為 COM 增益集載入一個執行個體,並當作自動化增益集載入其他執行個體。COM 增益集執行個體使用登錄中; 所示的載入行為視,載入自動化增益集執行個體。兩個執行個體會彼此分別獨立運作,而且不會共用的全域變數。

自動化增益集視需要載入,因為 Excel 可能會嘗試載入增益集,在儲存格編輯模式時。因此,當您開發自動化增益集支援IDTExtensibility2,您應該留意,不要執行任何嘗試將變更 Excel 的增益集載入時的狀態。如需詳細資訊,請參閱下列的文件 「 Microsoft 知識庫 」 中的文:

錯誤284876 : 當自動化增益集載入,Excel 就會失敗

(c) Microsoft 公司 2001,國際著作權公約保護。Lori B Turner,Microsoft Corporation 的貢獻。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

您對語言品質的滿意度如何?
以下何者是您會在意的事項?

感謝您的意見反應!

×