使用vb 6和vb.net为Office应用添加工具栏和按钮

在Office应用中,有可我们可能需要利用word进行一系列的操作,比如执行一段宏,通过点击一个工具栏按钮执行宏的代码段,下面的实例正是为office应用添加一个工具栏和按钮,类似可应用到excel和aceess等Office应用程序。

1. 在VB6中的应用

在VB6中引用Micosoft Word X.0(版本号) Object Library 和Micosoft Office X.0(版本号) Object Library,如下图:(笔者使用Office XP)

img_1

添加如下代码:

Private Sub Command1_Click()

    '定义word应用
    Dim wordApp As New Word.Application
    Dim myDoc As Word.Document

    '定义工具栏
    Dim myBar As Office.CommandBar

    '定义工具栏按钮
    Dim myButton As Office.CommandBarButton

    Dim IsExist As Boolean
    IsExist = False    

    '打开一个word文档
    Set myDoc = wordApp.Documents.Open("f:\test.doc")
    wordApp.Visible = True    

    '如果存在这个工具栏,就显示这个工具栏
    For Each myBar In wordApp.CommandBars
        If myBar.Name = "文件操作" Then
            myBar.Visible = True
            IsExist = True
        End If
    Next    

    '如果不存在,就创建工具栏及按钮
    If Not IsExist Then
         Set myBar = wordApp.CommandBars.Add( _
                     Name:="文件操作", _
                     Position:=msoBarTop, _
                     Temporary:=False)        

         Set myButton = CommandBars("文件操作").Controls.Add
             With myButton
                 .Caption = "文件保存"
                 .ToolTipText = "lihonggen create"
                ' .Picture =LoadPicture("f:\cd.ICO")
                 '指定表面图片序号
                 .FaceId = 10
                 .Visible = True
                 .Enabled = True
                 '指定此按钮宏的名称
                 .OnAction = "lihonggen"
             End With
        myBar.Visible = True
    End If
End Sub

2. 在VB.NET中的应用

同样,需要添加Micosoft Word X.0(版本号) Object Library 和Micosoft Office X.0(版本号) Object Library 这两个对象库的引用

img_2

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    '定义word应用
    Dim wordApp As New Word.Application()
    Dim myDoc As Word.Document

        '定义工具栏
    Dim myBar As Microsoft.Office.Core.CommandBar

        '定义工具栏按钮
    Dim myButton As Microsoft.Office.Core.CommandBarButton 

    Dim isExist As Boolean
    isExist = False
        '打开一个word文档
    myDoc = wordApp.Documents.Open("f:\test.doc")
    wordApp.Visible = True 

        '如果存在这个工具栏,就显示这个工具栏
    For Each myBar In wordApp.CommandBars
        If myBar.Name = "文件操作" Then
            myBar.Visible = True
            isExist = True
        End If
    Next

    '如果不存在,就创建工具栏及按钮
    If Not isExist Then
        myBar = wordApp.CommandBars.Add( _
                    Name:="文件操作", _
                    Temporary:=False) 

        myButton = myBar.CommandBars("文件操作").Controls.Add

        With myButton
            .Caption = "文件保存"
            .TooltipText = "lihonggen create"

            '指定图片序号
            .FaceId = 10
            .Visible = True
            .Enabled = True

            '指定此按钮宏的名称
            .OnAction = "lihonggen"

        End With
        myBar.Visible = True
    End If
End Sub

在word中录制的宏:

img3

生成的工具栏及按钮:

img4

宏的运行结果:

img5

读者可以在写基础上进行扩展!

Author : lihonggen0
个人专栏:http://www.csdn.net/develop/author/netauthor/lihonggen0/


对该文的评论 人气:321

lihonggen0 (2003-8-13 16:54:32)

金山词霸2002在word工具栏放了一个图标,用的是word插件技术。具体做法:添加到注册表:HKEY_CURRENT_USER\Software\Microsoft\Office\word\Addins\<ProgID> ProgID表示内部COM插件程序的唯一标识符的字符串表示形式。 ProgID键值下主要有四个键值: FriendlyName: 字符串类型,插件的名称,将在相应程序的COM加载对话框中看到。 Description 字符串类型,插件的描述信息。 LoadBehavior: DWORD类型,决定插件将以什么形式被装载。当其值为0x03时,为应用程序装载时被自动装载(一般使用此值)、当其值为0x08时,为用户控制激活装载。 CommandLineSafe: DWORD类型,命令行方式,可以设置为0x01(真)或0x00(假)。 你自己写的内部COM插件需要提供IDTExtensibility2接口,具体的做法你可以自己找资料去。 IE下的做法是在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions下面添加你写的com控件.当然你写的com控件也要符合IE的规范

lihonggen0 (2003-8-13 16:50:33)

在标准工具栏上添加按钮,如下: Set setButton = CommandBars("standard").Controls.Add With setButton .Caption = "文件保存" .ToolTipText = "aaaa" .Visible = True .OnAction = "bbbb" End With

Contributors: FHL