首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MyVBA加载宏——添加自定义菜单01

MyVBA加载宏——添加自定义菜单01

作者头像
xyj
发布2020-07-28 14:23:57
发布2020-07-28 14:23:57
1.7K0
举报
文章被收录于专栏:VBA 学习VBA 学习

前面创建的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

如果不存在"测试"这个菜单的时候,会报错,所以添加了一条忽略错误的语句。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 VBA 学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档