通过VBA在Excel中添加菜单和菜单项按钮
前面说了excel工具的使用,有些人可能想知道菜单是怎么增加的。这里把个人经验分享出来。也方便大家后续自己改造源码。
新增一个菜单项
案例:在原有的菜单上增加一个新菜单项,如下图:
操作步骤:
- 插入一个模块,如下图:
- 在模块中添加方法,如下图
- (选)修改模块名称
- 选中“模块1”,按“F4”,或者“视图”-->“属性窗口”
- 修改名称为您的模块名称,例如“myMoudle”
- 关闭您的excel,例如“用例模板_excel.xlsm”,修改后缀为rar,如下图:
- 编辑rar文件(添加按钮)
- 编辑完毕后另存为,然后拖进rar中替换对应的文件。
- 还原rar文件到xlsm,修改后缀为xlsm,如下图
- 打开excel文档,查看菜单,如下图:
- 点击按钮“我的测试按钮”,如下图
注意:当模块名与方法一样时会报如下错误:
- 用按钮去调时需要为方法增加一个参数,如图:
- 添加按钮完毕:
加载项(或2003excel)
案例:在2003excel中新增一个菜单,或是在2007中增加按钮到加载项,如下图:
操作步骤
- 增加一个如下的方法,运行即可添加菜单:
注意:这种方式添加的菜单,对应的方法不能含有参数
Sub MyButton()
Dim NewMenu As CommandBarButton
With Application.CommandBars("Worksheet menu bar").Controls(1)
.Reset
Set NewMenu1 = .Controls.Add(Type:=msoControlButton)
Set NewMenu2 = .Controls.Add(Type:=msoControlButton)
Set NewMenu3 = .Controls.Add(Type:=msoControlButton)
Set NewMenu4 = .Controls.Add(Type:=msoControlButton)
Set NewMenu5 = .Controls.Add(Type:=msoControlButton)
With NewMenu1
.Caption = "用例组合"
.OnAction = "UserCaseGroup"
End With
With NewMenu2
.Caption = "取消组合"
.OnAction = "ClearGroup"
End With
With NewMenu3
.Caption = "隐藏菜单"
.OnAction = "HideMenu"
End With
With NewMenu4
.Caption = "等级着色"
.OnAction = "SetLevelColour"
End With
With NewMenu5
.Caption = "Run APIs"
.OnAction = "runAPIs"
End With
End With
Set NewMenu = Nothing
End Sub
导入模块到新的excel中
应用场景:
您已经在excel中已经写好了用例,可以把工具的脚本导入到您的excel中。否则您需要把用例粘贴到模板中。
1、修改任意一个sheet名为“通用用例”,例如:
---后来测试可以不用修改sheet名称,之前发现是有问题的。保留着供参考吧。
2、在上图中,按ALT+F11,打开如下界面,导入如下图的文件:
3、另存为xlsm格式;
4、关闭excel;
5、直接修改文件名的后缀为rar类型,如:
6、将下图的3个文件拖到rar中:
还原rar后缀为xlsm,如下图:
8、可以打卡你的excel了,也可以随意习惯sheet名了;