vb word插件

Vb word插件<?XML:NAMESPACE PREFIX = O />

你也許曾在Office2000下的Word2000Access2000Excel2000PowerPoint2000等軟件中的工具條或菜單條資源中,看到一些其它軟件加入的新的自定義工具條按鈕或菜單條,當點擊它們時,會有其不同的響應發生。下面,讓我們也來實現這些功能,需要說明的是,在這裏我們不用VB/VBA來實現它,而是用VC6中所帶ATL(活動模板庫)3.0來開發具有這種效果的Office2000內部COM插件。在Office2000中,不管是Word2000Access2000Excel120000PowerPoint2000還是Outlook2000等,它們COM插件的編程方法及步驟都是極其相似的(除註冊表中鍵值及導入相應類型庫不同外)

基礎知識
一個Office2000下的內部COM插件必須實現一個_IDTExtensibility2派發接口,_IDTExtensibility2派發接口被定義在MSADDin Designer類型庫(MSADDNDR.dll/MSADDNDR.tlb)中,通常位於<盤符>/Program Files/Common Files/Designer下。_IDTExtensibility2接口中必須實現下面五個接口函數(一般只需編寫OnConnectionOnDisconnection中代碼),分別如下:
1. OnConnection:
裝載插件到內存時處理(可以通過自動化在程序啓動時自動裝載插件)
2. OnDisconnection:
從內存中缷載插件時處理。
3. OnAddinsUpdate: COM
插件改變時處理。
4. OnStartupComplete:
當應用程序啓動時插件剛裝載完成時處理。
5. OnBeginShutdown:
當應用程序關閉時插件剛缷載完成時處理。

註冊插件
只有在正確註冊了相應應用程序的內部COM插件時,才能被其應用程序加載上。需要在註冊表中創建以下鍵值:
HKEY_CURRENT_USER/Software/Microsoft/Office/<TheOfficeApp>/Addins/<ProgID>
其中,TheOfficeApp表示相應程序名,如:WordOutlook等,ProgID表示內部COM插件程序的唯一標識符的字符串表示形式,如:Outlook2000Addin.Addin等。

ProgID鍵值下主要創建以下四個鍵值:
1. FriendlyName:
字符串類型,插件的名稱,將在相應程序的COM加載對話框中看到。
2. Description:
字符串類型,插件的描述信息。
3. LoadBehavior: DWORD
類型,決定插件將以什麼形式被裝載。當其值爲0x03時,爲應用程序裝載時被自動裝載(一般使用此值)、當其值爲0x08時,爲用戶控制激活裝載。
4. CommandLineSafe: DWORD
類型,命令行方式,可以設置爲0x01()0x00()

 

 

Office應用程序中,儘管菜單和工具欄按鈕看上去不太一樣,但實質上它們是相同類型的對象。

 

CommandBars集合包含程序中的所有命令條,如:工具條和菜單條。

 

每一個CommandBars集合都有一個CommandBar對象和它對應,CommandBar 對象可以包含其它的 CommandBar 對象,這些對象是作爲按鈕或菜單命令來用的。

 

每一個CommandBar都將通過CommandBarControls 對象被引用,CommandBarControls又可以包含一組CommandBarControl對象。

 

每一個CommandBarControl可以包含一個CommandBar對象,並可以通過它來存取控件屬性。

 

每一個CommandBarControl對象,實際是對應CommandBarControls中的控件集合。

 

 

CommandBarControl可以有三種表現形式:


彈出式(CommandBarPopup):相當於菜單條的一個菜單項。
組合框(CommandBarComboBox):類似於工具條中組合框控件。它包括一個工具欄和緊接着工具欄的一個下拉箭頭。單擊該按鈕,將顯示出更多的帶圖標的菜單命令。
按鈕(CommandBarButton):相當於標準的工具欄按鈕,即帶有圖標的按鈕。


在下面的示例程序中,我們將在Word 2K中新建一個工具條並在其上添加二個按鈕,並且在其菜單工具中新建一個菜單條,這些操作都可以在OnConnection接口函數中完成。

 

 

1,添加引用

       Microsoft  Add-In  Designer

       Microsoft  Office  11.0 Object Library

       Microsoft Word 11.0 Object Library

 

 

 

 2,實現IDTExtensibility2接口

Implements  IDTExtensibility2

 

 3,實現函數,一共5個接口函數

       OnConnection 函數實現下載代碼,實現得功能,插入一個工具條,上面有一個按鈕,單擊會顯示對話框

 

Dim WithEvents spCmdButton As Office.CommandBarButton

上面這一句,在通用處聲明

 

Dim spApp As Word.Application

 

//獲取菜單,工具條集合

       Dim spCmdBars As Office.CommandBars

 

         Dim spNewCmdBar As Office.CommandBar

 

    Dim spbarcontrols As Office.CommandBarControls

   

    Dim spNewBar As Office.CommandBarControl

          

    Set spApp = Application

   

    Set spCmdBars = spApp.CommandBars

   

    Set spNewCmdBar = spCmdBars.Add("王永勝", 1)

   

    Set spbarcontrols = spNewCmdBar.Controls

   

  

   

    Set spNewBar = spbarcontrols.Add(msoControlButton, 1)

   

 

    Set spCmdButton = spNewBar

   

   

    spCmdButton.Style = MsoButtonStyle.msoButtonCaption

   

spCmdButton.Visible = True

 

spCmdButton.Enabled = True

 

spCmdButton.ToolTipText = "王永勝"

 

    spCmdButton.Caption = "按鈕"

   

    spNewBar.Visible = True

   

按鈕事件得實現函數

 

Private Sub spCmdButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)

    MsgBox "ddf"

End Sub

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章