菜单和工具栏控制(适用于全部Office组件)
时 间:2006-12-06 00:00:00
作 者:黄海 ID:32 城市:苏州
摘 要:经常看到有网友问菜单和工具栏的问题,包括使菜单项失效,禁止右键菜单弹出,增加菜单项等,自己也回答了不少这方面的问题,这些问题其实都是雷同的,数月之前就打算写点东西介绍一下这方面的内容,但一直都忙于工作,直至现在才抽出时间来完成。
正 文:
菜单和工具栏的每一个选项分别对应一个Control,例如:CommandBars(“Text”).Controls(1)对应右键菜单的第一项, CommandBars(“Text”).Controls(1).Enabled = False可使”剪切”选项失效。
可用Name属性引用CommandBar对象,Caption属性引用Control;序号则可用于两者.CommandBars(63).Name的值就是”Text”, CommandBars(63).Controls("剪切(&T)").Enabled = False同样可令右键菜单的”剪切”选项失效。
菜单项中的某一项如果有子菜单,那么这项也属于CommandBar对象,如“视图”菜单中的“工具栏”有有关工具栏的子菜单,所以“视图”属于CommandBar对象,想禁用“视图”,可用语句:CommandBars("View").Controls(5).CommandBar.Enabled = False,很多网友问怎样禁止在工具栏上弹出右键菜单,用这行代码就可以实现。
如文件菜单下的打印
CommandBars("menu Bar").Controls("文件(&F)").Controls("打印(&P)...").Enabled = 0
看到这里,你可能会问:那我怎样才知道什么序号和Caption对应什么菜单项和Control呢?粘贴下列代码运行,就会一目了然。
Sub 列举菜单项()
For i = 1 To CommandBars.Count
Selection.TypeText i & ":" & CommandBars(i).Name
Selection.TypeParagraph
For a = 1 To CommandBars(i).Controls.Count
Selection.TypeText " " & a & ":" & CommandBars(i).Controls(a).Caption
Selection.TypeParagraph
Next
Next
End Sub
不仅在Word中,在Excel、Access、Powerpoint、Fontpage、Outlook同样包含CommandBars对象,因此上述内容同样适用于这些Office组件,同样可以用Word来列举它们的菜单。下列代码用于在Word中列举其它组件的菜单。
注意要在“工具”菜单中的“引用”项中引用“Microsoft Word 9.0 Object Library”
Sub 列举菜单项()
Set wdapp = New Word.Application
Set wdapp = CreateObject("Word.Application")
wdapp.Visible = True
Set wdDoc = wdapp.Documents.Add
For i = 1 To CommandBars.Count
wdapp.Selection.TypeText i & ":" & CommandBars(i).Name
wdapp.Selection.TypeParagraph
For a = 1 To CommandBars(i).Controls.Count
wdapp.Selection.TypeText " " & a & ":" & CommandBars(i).Controls(a).Caption
wdapp.Selection.TypeParagraph
Next
Next
End Sub
另附一段调整工具栏位置的程序
Sub 工具栏位置()
CommandBars("clipboard").Visible = True
CommandBars("clipboard").Position = msoBarTop
CommandBars("clipboard").RowIndex = CommandBars("standard").RowIndex
CommandBars("clipboard").Left = CommandBars("standard").Left + CommandBars("standard").Width
End Sub
Access软件网官方交流QQ群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access快速开发平台--对上传...(11.22)
- Access快速开发平台企业版--...(11.18)
- 不会用多表联合查询,多表查询没结果...(11.16)
- 【案例分享】主键字段值含有不间断空...(11.16)
- Access快速开发平台--后台D...(11.14)
- 微软Access邀测新Monaco...(11.12)
- Access列表框左右互选、列表框...(11.11)
- 高效率在导入数据前删除记录(11.10)
- Access报价单转订单示例代码(11.08)
- Access系统自带的日期选择器不...(11.08)