用VBA代码处理菜单和工具栏之一

文章作者 100test 发表时间 2008:01:04 12:51:43
来源 100Test.Com百考试题网


获取菜单和工具栏的信息

在所有的OFFICE组件应用程序中都包含有内置的工具栏,并且可以进行进一步的自定义显示相关命令,它们一共有三种类型:菜单栏,工具栏和弹出式菜单栏(本主题以工具栏代表三种类型来描述)。

你可以用下面的一段程序在立即窗口中显示它们的所有的工具栏以及工具栏上所包含的命令控件:

Function CBPrintCBarInfo(strCBarName As String) As Variant

This procedure prints (to the Debug window) information

about the command bar specified in the strCBarName argument

and information about each control on that command bar.

Dim cbrBar As CommandBar

Dim ctlCBarControl As CommandBarControl

Const ERR_INVALID_CMDBARNAME As Long = 5

On Error GoTo CBPrintCBarInfo_Err

Set cbrBar = Application.CommandBars(strCBarName)

Debug.Print "CommandBar: " &. cbrBar.Name &. vbTab &. "(" _

&. CBGetCBType(cbrBar) &. ")" &. vbTab &. "(" _

&. IIf(cbrBar.BuiltIn, "Built-in", "Custom") &. ")"

For Each ctlCBarControl In cbrBar.Controls

Debug.Print vbTab &. ctlCBarControl.Caption &. vbTab &. "(" _

&. CBGetCBCtlType(ctlCBarControl) &. ")"

Next ctlCBarControl

CBPrintCBarInfo_End:

Exit Function

CBPrintCBarInfo_Err:

Select Case Err.Number

Case ERR_INVALID_CMDBARNAME

CBPrintCBarInfo = "" &. strCBarName &. _

" is not a valid command bar name!"

Case Else

CBPrintCBarInfo = "Error: " &. Err.Number _

&. " - " &. Err.Description

End Select

Resume CBPrintCBarInfo_End

End Function

你可以在access的Visual Basic编辑器中的立即窗口中运行这个函数得到access所有的菜单或工具栏的命令按钮,例如,可以在立即窗口中键入以下命令:

CBPrintCBarInfo(“Web”)

回车后你能在立即窗口中显示出Web工具栏所包含的所有命令集合,如下图:

如果命令按钮的类型显示为“Popup”时, 例如“收藏夹”这个命令它本身就是一个弹出式工具栏,你同样可以用本函数来得到它个每一个命令按钮的清单,如:

CBPrintCBarInfo(“favorites”)

你可以用名称或集合索引来访问工具栏集合的每个工具栏,注意与其它集合不同的是所有集合索引都是从1开始的。



相关文章


用VBA代码处理菜单和工具栏之四
用VBA代码处理菜单和工具栏之三
用VBA代码处理菜单和工具栏之一
试图启动任意MicrosoftAcce 向导时该向导却不启动
谈关于数据库安全问题
数据库设计注意事项
再提数据库正规化之数据库的五大范式
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛