使用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)
添加如下代码:
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 这两个对象库的引用
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中录制的宏:
生成的工具栏及按钮:
宏的运行结果:
读者可以在写基础上进行扩展!
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