现在,我们花一些时间来分析对My FirstMenu过程所做出的修改。可以看到代码首先创建 了两个新的对象变量:
Dim mymenu As Object Dim mymenuitem As Object 过程中下一行新修改的代码添加了“文件”菜单。“文件”菜单是这个菜单栏上的第一个菜单,所以Before参数的取值是1:
mybar. Controls. Add Type := msoControlPopup, ID := 30002, Before :=1 下一个添加的菜单是自定义类型的:
Set mymenu = mybar. Controls. Add ( Type := msoControlPopup,_Temporary := Tr u e ) mymenu.Caption = "计划" 添加了自定义菜单以后,又添加了一个自定义菜单项:
Set mymenuitem = mymenu. Controls. Add ( Type := msoControlButton, ID :=1) 自定义菜单项需要设置它的几个属性, C a p t i o n属性的取值就是显示的菜单项文本Style(样式)设置为msoButtonCaption是因为这个菜单项只有显示的文本。菜单项是没有与之相关联的图标的。OnAction属性设置了当菜单项选中时需要运行的那个过程:
mymenuitem. Caption = " 执行" mymenuitem. Style = msoButtonCaption mymenuitem. OnAction = " ShowMe" 现在,你已经知道怎样向菜单栏上添加菜单和菜单项了,不管是添加菜单还是菜单项,
都要使用Controls集合,关键是要明白把控件添加到哪种类型的对象中去。添加菜单时,是把控件添加到菜单栏上。而添加菜单项时,是把控件添加到菜单中。 那么如果我们不想自己创建菜单栏,而是想把菜单项直接添加到EXCEL自带的菜单栏中呢?先让我们录制一个宏来得到我们想要的参数。 开始录制一个宏,把需要向菜单栏添加的菜单添加进去 要添加内置菜单到菜单栏的话,用鼠标右键单击菜单栏,从弹出的菜单中选择“自定义”,切换到“命令”选项卡页。在“类别”列表框中,找到并选择“新菜单”,在“命令”列表框中,就将看到“新菜单”,从“命令”列表框中拖拉“新菜单”。我们准备把“新菜单”放置在菜单最后,释放鼠标键,把菜单放置到新位置上。再次从“命令”列表框中拖拉“新菜单”并放到刚才放的新菜单中形成菜单项,然后关闭宏录制。 打开刚才录制的宏得到以下代码: Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _ msoControlPopup, Before:=11 Application.CommandBars("Custom Popup 5074997").Controls.Add Type:= _ msoControlPopup, Before:=1
结合上面的代码修改如下: Public Sub MyFirstMenubar2()
Dim mybar As CommandBar Dim mymenu As Object Dim mymenuitem As Object
Set mymenu = CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, ID:=1, Before:=11, Temporary:=True) mymenu.Caption = "切料计划" Set mymenuitem = mymenu.Controls.Add(Type:=msoControlButton, ID:=1)
mymenuitem.Caption = "执行" mymenuitem.Style = msoButtonCaption mymenuitem.OnAction = " ShowMe " End Sub
再切换回工作簿,在Sheet1上创建一个命令按钮,把宏过程MyFirstMenubar2分配给这个 命令按钮,并把按钮的标题设置为“计划菜单2”。执行“计划菜单2”就得到了我们想要的结果! 以上就是怎样添加制作自己的菜单,希望能给各位E友点启发!谢谢关注!!!
uHCiGjzX.rar
(8.77 KB, 下载次数: 808)
[此贴子已经被作者于2007-4-9 19:59:38编辑过] |