前面创建的MyVBA加载宏,设置成了启动就打开的加载宏,只有一个打开宏文件的功能:
在这个自启动的加载宏上,给它在VBA编辑器里,添加一个菜单栏:
主要功能就是收集一些常用的代码,方便快速的插入到VBA编辑器中。
这些常用的代码主要是一些一般不构成单独功能的代码,如果是构成单独功能的代码,个人习惯存储在文件中,就像前面提到过的vbapFunc.xlam中ScanDir之类的,是通过工具-引用,添加引用去使用。
这里添加的代码就是一些小的片段的代码,比如声明一个外部对象字典:
代码语言:javascript复制 Dim dic As Object
Set dic = VBA.CreateObject("Scripting.Dictionary")
因为拼写单词有时候可能会写错,通过这种方式就可以避免这个问题。
当然这个也可以根据自己的习惯去添加,目的只是为了方便快速的插入一些经常用到的代码。
我们在VBE菜单——CommandBars对象里,对VBE里的菜单对象已经有了了解,要添加新的菜单,只要去操作CommandBars集合中的第一个对象即可:
代码语言:javascript复制Sub TestAdd()
Dim cmd As CommandBarControl
Set cmd = Application.VBE.CommandBars(1).Controls.Add(msoControlPopup)
cmd.Caption = "测试"
End Sub
这个时候,在菜单栏上就多了一个“测试”的菜单,msoControlPopup表示添加的是一个弹出式的Control,这种弹出式的可以继续在其上面添加CommandBarControl:
代码语言:javascript复制Sub TestAdd()
Dim cmd As CommandBarControl
Set cmd = Application.VBE.CommandBars(1).Controls.Add(msoControlPopup)
cmd.Caption = "测试"
Dim btn As CommandBarButton
Set btn = cmd.Controls.Add
btn.Caption = "测试按钮"
End Sub
这样“测试”菜单上就出来了一个按钮了。
删除这个菜单:
代码语言:javascript复制Sub TestDelete()
On Error Resume Next
Application.VBE.CommandBars(1).Controls("测试").Delete
End Sub
如果不存在"测试"这个菜单的时候,会报错,所以添加了一条忽略错误的语句。