HOW TO:使用 VBA 與 Office Developer 建立 Office COM 增益集

文章翻譯 文章翻譯
文章編號: 306130 - 檢視此文章適用的產品。
本文曾發行於 CHT306130
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何顯示一個會在您啟動 Microsoft Excel 或 Microsoft Word 時歡迎您的自訂表單。「元件物件模型」(COM) 增益集可提供在已編譯的動態連結程式庫 (DLL) 中集中共用程式碼的方法,而您可以很容易的在任何 Office 應用程式中執行此 DLL (例如,您可以從 Excel、Word 與 Microsoft Access 來存取 Microsoft Outlook 連絡人)。在 Microsoft Office 中開發 COM DLL 的最簡單的方法是使用增益功能專案,增益功能提供了設計工具以及 IDTExtensibility2 程式庫的參考。

需求

本文假設您熟悉下列主題:

  • 在 Office XP 應用程式中建立 Visual Basic for Applications (VBA) 程序。
  • 使用 VBA 中的自訂表單。
  • 自訂 Office XP 工具列。

建立增益功能專案

您可以在任何 Office 2000 或 Office XP 應用程式中建立增益功能。本範例適用於 Microsoft Word 2002。
  1. 啟動 Microsoft Word 2002。
  2. [工具] 功能表,指向 [巨集] ,然後按一下 [Visual Basic 編輯器]
  3. 在 [Visual Basic 編輯器] (VBE) 中,按一下 [檔案] 功能表上的 [新增專案]
  4. [新增專案] 對話方塊中,按一下 [增益功能專案] 。這樣會自動提供「增益功能設計工具」。
  5. 如果沒有看見 [屬性] 視窗,請按一下 [檢視] 功能表上的 [屬性視窗]
  6. 在 [屬性] 視窗中,將專案名稱 AddInDesigner1 重新命名為 WelcomeAddIn。
  7. [插入] 功能表,按一下 [自訂表單] 以插入自訂表單。
  8. 從工具箱中,新增一個 Label 與一個CommandButton 至自訂表單。
  9. 在 [屬性] 視窗中,變更控制項的屬性以符合下表的值:
    摺疊此表格展開此表格
    控制項 屬性
    Label Name lblMessage
    Caption Welcome
    Font 14pt
    AutoSize True
    CommandButton Name cmdOK
    Caption OK
    UserForm Name frmWelcome

  10. [插入] 功能表,按一下 [模組] 以插入標準模組。
  11. 將下面的全域字串變數宣告新增至此標準模組:
    Public gstrUserName As String
    'This variable will be used to store the name of the user as defined
    'in the Options dialog boxes (from the Tools menu) in Word and Excel.
  12. 在模組中,新增下面程式碼以建立一個稱為 DisplayForm 的公用 Sub 程序,以便在螢幕上顯示此表單:
    Public Sub DisplayForm()
      frmWelcome.Show vbModal
    End Sub
  13. 檢視 frmWelcome 表單的程式碼視窗,然後將下面程式碼新增至 UserForm_Initialize 事件,以連接標籤標題和字串變數:
    lblMessage.Caption = lblMessage.Caption & " " & gstrUserName
  14. 將下面程式碼新增至 CommandButton cmdOK Click 事件以卸載此表單:
    Unload me

變更增益功能設計工具的屬性

執行下列步驟以變更設計工具的屬性,這樣只要您一啟動 Microsoft Excel,增益集就會啟動:
  1. 在 [專案總管] 中,按兩下元件以返回「增益功能設計工具」。
  2. 在設計工具的 [一般] 索引標籤上,變更設計工具的屬性以符合下表的值:
    摺疊此表格展開此表格
    屬性
    AddIn Display Name FunFormMessage
    AddIn Description This contains code that is specific to Excel
    Application Microsoft Excel
    Application Version Microsoft Excel 10.0
    Initial Load Behavior Startup

實作 IDTExtensibility2 事件

  1. [檢視] 功能表,按一下 [程式碼] 以檢視設計工具背後的程式碼模組。
  2. [工具] 功能表,按一下 [引用] ,然後設定指向「Microsoft Excel 物件程式庫」(Microsoft Excel Object Library) 的引用項目。
  3. [物件] 下拉式清單中,按一下 [AddinInstance] 。在 [程序] 下拉式清單中,按一下 [OnConnection]

    此事件對於建立 CommandBar 按鈕很有用,或是當增益功能連線至主應用程式時以事件 (例如應用程式事件) 來關聯程式碼,此事件也很有用。
  4. 將下面程式碼新增至 AddinInstance_OnConnection 事件程序以便在全域變數 strUserName 中儲存使用者名稱,並呼叫 DisplayForm 程序:
    gstrUserName = Application.UserName
    DisplayForm
  5. 在 VBE 中,按一下 [儲存] ,然後將專案命名為 Welcome.vba。

新增第二個設計工具

在此程序中,您會新增第二個設計工具以便在 Microsoft Word 中執行相同的功能。
  1. 在 VBE 中建立另一個增益功能。根據預設值,會隨即建立 AddInProject2。
  2. 在 [專案總管] 中,將新的「增益功能設計工具」介面 ( AddInDesigner1 ) 拖曳至現有的增益功能專案中。專案中會有兩個設計工具。
  3. 在 [專案總管] 中,以右鍵按一下 [AddInProject2] ,然後按一下 [關閉專案] 以移除您剛才建立的專案。
  4. 當您收到下面訊息或類似訊息時
    專案 AddInProject2 已經被修改。您希望儲存這個變更嗎?
    請按一下 [否]
  5. 變更設計工具的屬性,指定 Word 10 作為目標應用程式並在 Startup (啟動) 時載入。
  6. 將下面程式碼新增至新的 Word 設計工具的 AddinInstance_OnConnection 事件程序,這和先前寫給 Excel 設計工具的 OnConnection 事件的程式碼相同:
    gstrUserName = Application.UserName
    DisplayForm

對增益功能進行偵錯

  1. 如果您願意,可在程式碼中加入適當的中斷點。
  2. 在 VBE 中,按一下 [執行] 功能表上的 [執行專案] 以執行增益功能。
  3. 啟動 Microsoft Excel。當此專案啟動時,您可能會看見「增益功能設計工具」的對話方塊。按一下選項以啟動某個應用程式,然後瀏覽至 Excel.exe。如果沒有出現此對話方塊,請按一下 [開始] ,指向 [程式集] ,然後按一下 [Microsoft Excel] 以啟動 Excel。您的自訂表單應該就會出現。
  4. 如果 COM 增益功能管理員尚無法使用,請將 [COM 增益集] 指令新增至工具列,如下所示:
    1. [工具] 功能表上,按一下 [自訂]
    2. [自訂] 對話方塊中,在 [指令] 索引標籤上,將 [COM 增益集] 指令從 [工具] 類別中拖曳至工具列上,或拖曳至 [工具] 功能表 [CommandBarPopup] 物件上。
  5. 按一下 [COM 增益集] 指令列以顯示 COM 增益功能管理員 (CAM)。CAM 中的清單會顯示出所有載入的增益集。
  6. 若要測試 OnConnection 事件,請清除 CAM 中的 [Welcome] 增益功能核取方塊,然後按一下 [確定] 。重新顯示 CAM,選取 [Welcome] 核取方塊,然後按一下 [確定] 。自訂表單應該會再次出現。
  7. 關閉主應用程式 (不論是 Word 或 Excel),然後在 VBE 中按一下 [執行] 功能表上的 [停止專案] 以停止執行此專案。

確認增益功能可以運作

您現在可以編譯此增益功能並檢查它在另一部電腦上是否可以運作。
  1. 在 VBE 中儲存此專案。這是您可編輯的版本,已編譯好的狀態無法讓您進行任何修改。
  2. [檔案] 功能表,按一下 [製成 Welcome.DLL]
  3. 使用 regsvr32 指令來註冊此 DLL,如下所示:
    1. 從 Windows [開始] 功能表,按一下 [執行]
    2. [開啟] 文字方塊中,輸入下面文字:
      regsvr32 < path >\Welcome.DLL
      其中 < path > 是 DLL 的檔案系統路徑。
  4. 按一下 [確定] 以確認此 DLL 的註冊。
  5. 執行 Excel 與/或 Word。您的自訂表單應該會出現。如果沒有看見您的自訂表單,請按一下 [工具] 功能表上的 [Com 增益集] ,然後選取 [Welcome] 核取方塊。
注意 :散發 DLL 最簡單的方法是使用「封裝暨部署精靈」。

疑難排解

  • 確認您替增益功能在載入記憶體中時撰寫簡短又有效率的程式碼。例如,如果您的 OnConnection 事件會在啟動時處理資料庫的資料,使用者會以為電腦停止回應了 (掛掉)。
  • 請小心使用自訂表單。當使用者按一下主應用程式時,因為表單會隱藏在主應用程式後面,使用者可能會以為表單不見了。替代方法是使用強制回應的表單來克服此問題。若要建立強制回應的表單,請使用 vbModal 常數,如下所示:
    frmMyUserForm.Show vbModal
    若要查看此程式碼在本範例中的適用位置,請參閱〈 建立增益功能專案 〉一節步驟 12 中的程式碼。

參考

如需增益集範本,請參考 Office XP Developer CD 上的 \Samples\Working with AddIns\VBA_COM_AddIn 資料夾。

如需如何建立 CommandBar 按鈕的程式碼範例,請參閱下面的 MSDN 網站:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrCreatingCommandBar.asp
如需如何設計 Outlook 增益集的資訊,請參閱下面的 MSDN 網站:
http://msdn.microsoft.com/code/default.asp?url=/msdn-files/026/000/118/massmail_design_htm.asp





?考

本文件是根據 Microsoft Knowledgebase 文件編號 Q306130 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q306/1/30.asp

屬性

文章編號: 306130 - 上次校閱: 2007年12月4日 - 版次: 1.1
這篇文章中的資訊適用於:
  • Microsoft Office XP Developer Edition
  • Microsoft Office XP Professional Edition
關鍵字:?
kbhowto kbhowtomaster KB306130
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com