打印本文 关闭窗口 | |||||||||||||
Excel2003中通过VBA实现自定义菜单和菜单栏(4) | |||||||||||||
作者:佚名 文章来源:网络 点击数 更新时间:2012-5-28 10:45:42 文章录入:admin 责任编辑:admin | |||||||||||||
|
|||||||||||||
六、命令
可以对命令进行的修改与控件的类型有关。一般来说,按钮要么被启用,要么被隐藏。而编辑框、下拉列表框和组合框较为灵活一些,因为您可以在列表中添加或删除项目。另外,还可以通过查看在列表中选中的项目的值来确定执行的操作。您可以将任何控件的操作更改为内置函数或自定义函数。 下表列出了最常见的控件属性和更改控件的状态、操作或内容的方法:
要了解有关 Excel 2003 和 Excel 2002 中菜单的更多信息,请按照下列步骤操作: 1. 启动 Visual Basic 脚本编辑器。 2. 在“帮助”菜单上,单击“Microsoft Visual Basic 帮助”。 3. 在“搜索帮助”框中,键入菜单,然后按 Enter。 4. 单击“添加和管理菜单栏和菜单项 (Office)”。 6.1向菜单控件添加分隔条
以下代码示例在“插入”菜单上的工作表命令之前添加分隔条: Sub menuItem_AddSeparator() CommandBars("Worksheet menu bar").Controls("插入(&I)") _ .Controls("工作表(&W)").BeginGroup = True End Sub 注意:要删除分隔条,请将 BeginGroup 属性设置为 False。 6.2在菜单上创建自定义命令控件
以下代码示例在“工作表”菜单栏的“工具”菜单上创建名为 Custom1 的新命令,然后,当您单击“Custom1”时,它将运行 Code_Custom1 宏: Sub menuItem_Create() With CommandBars("Worksheet menu bar").Controls("工具(&T)") .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "Custom1" .Controls("Custom1").OnAction = "Code_Custom1" End With End Sub 6.3在命令控件旁放置选中标记
以下代码示例在 Custom1 命令未选中的情况下在其旁边放置一个选中标记;如果 Custom1 命令已选中,则将删除该选中标记: Sub menuItem_checkMark() Dim myPopup as Object Set myPopup = CommandBars("Worksheet menu bar").Controls("工具(&T)") If myPopup.Controls("Custom1").State = msoButtonDown Then ' 删除选中标记旁边的菜单项。 myPopup.Controls("Custom1").State = msoButtonUp MsgBox "Custom1 is now unchecked" Else '添加复选标记旁边的菜单项。 myPopup.Controls("Custom1").State = msoButtonDown MsgBox "Custom1 is now checked" End If End Sub 6.4禁用命令栏上的命令控件
以下代码示例禁用您在“在菜单上创建自定义命令控件”一节中在“工具”菜单上创建的 Custom1 命令: Sub MenuItem_Disable() Dim myCmd as Object Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)") myCmd.Controls("Custom1").Enabled = False End Sub 6.5启用命令栏上的命令控件
以下代码示例启用您在“禁用命令栏上的命令控件”一节中禁用的 Custom1 命令: Sub MenuItem_Enable() Dim myCmd as Object Set myCmd = CommandBars("Worksheet menu bar").Controls("工具(&T)") myCmd.Controls("Custom1").Enabled = True End Sub 6.6删除菜单上的命令控件
以下代码示例删除“文件”菜单上的“保存”命令: Sub menuItem_Delete() Dim myCmd As Object Set myCmd = CommandBars("Worksheet menu bar").Controls("文件(&F)") myCmd.Controls("保存(&S)").Delete End Sub 6.7还原菜单上的内置命令控件
要还原菜单上的命令控件,必须知道该控件的标识 (ID) 号。要确定 ID 号,请参见“返回命令栏控件的 ID”一节。以下示例先删除您在“删除菜单上的命令控件”一节中删除的“保存”命令,然后又将其还原: Sub menuItem_Restore() Dim myCmd As Object Set myCmd = CommandBars("Worksheet menu bar").Controls("文件(&F)") ' Id 3 为保存子菜单项ID号. myCmd.Controls.Add Type:=msoControlButton, ID:=3, Before:=5 End Sub
七、子菜单
当您单击某个命令时,父菜单的一侧会出现子菜单。作为子菜单控件的命令在其名称右边有一个黑色小箭头。 7.1添加子菜单
以下代码示例向“工作表”菜单栏上的“工具”菜单添加名为“NewSub”的新子菜单: Sub SubMenu_Create() Dim newSub as Object Set newSub = CommandBars("Worksheet menu bar").Controls("工具(&T)") With newSub .Controls.Add(Type:=msoControlPopup, Before:=1).Caption="NewSub" End With End Sub 7.2向子菜单添加命令
以下代码示例向“NewSub”子菜单添加名为“SubItem1”的新命令,然后,当您单击“SubItem1”时,它将运行 Code_SubItem1 宏: Sub SubMenu_AddItem() Dim newSubItem as Object Set newSubItem = CommandBars("Worksheet menu bar") _ .Controls("工具(&T)").Controls("NewSub") With newSubItem .Controls.Add(Type:=msoControlButton, Before:=1).Caption = "SubItem1" .Controls("SubItem1").OnAction = "Code_SubItem1" End With End Sub 7.3禁用子菜单上的命令控件
以下代码示例禁用您在“向子菜单添加命令”一节中创建的 SubItem 命令: Sub SubMenu_DisableItem() CommandBars("Worksheet menu bar").Controls("工具(&T)") _ .Controls("NewSub").Controls("SubItem1").Enabled = False End Sub 以下代码示例启用同一 SubItem 命令: Sub SubMenu_DisableItem() CommandBars("Worksheet menu bar").Controls("工具(&T)") _ .Controls("NewSub").Controls("SubItem1").Enabled = True End Sub 7.4删除子菜单上的命令
以下示例删除您在“向子菜单添加命令”一节中在“NewSub”子菜单上创建的 SubItem1 命令: Sub SubMenu_DeleteItem() CommandBars("Worksheet menu bar").Controls("工具(&T)") _ .Controls("NewSub").Controls("SubItem1").Delete End Sub 7.5禁用子菜单控件
以下代码示例禁用您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单: Sub SubMenu_DisableSub() CommandBars("Worksheet menu bar").Controls("工具(&T)") _ .Controls("NewSub").Enabled = False End Sub 注意:要启用已禁用的控件,请将 Enabled 属性设置为 True。 7.6删除子菜单控件
以下代码示例删除您在“添加子菜单”一节中在“工具”菜单上创建的“NewSub”子菜单: Sub SubMenu_DeleteSub() CommandBars("Worksheet menu bar").Controls("工具(&T)") _ .Controls("NewSub").Delete End Sub |
|||||||||||||
打印本文 关闭窗口 |