Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >MyVBA加载宏——添加自定义菜单01

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

作者头像
xyj
发布于 2020-07-28 06:23:57
发布于 2020-07-28 06:23:57
1.5K00
代码可运行
举报
文章被收录于专栏:VBA 学习VBA 学习
运行总次数:0
代码可运行

前面创建的MyVBA加载宏,设置成了启动就打开的加载宏,只有一个打开宏文件的功能:

在这个自启动的加载宏上,给它在VBA编辑器里,添加一个菜单栏:

主要功能就是收集一些常用的代码,方便快速的插入到VBA编辑器中。

这些常用的代码主要是一些一般不构成单独功能的代码,如果是构成单独功能的代码,个人习惯存储在文件中,就像前面提到过的vbapFunc.xlam中ScanDir之类的,是通过工具-引用,添加引用去使用。

这里添加的代码就是一些小的片段的代码,比如声明一个外部对象字典:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    Dim dic As Object
    Set dic = VBA.CreateObject("Scripting.Dictionary")

因为拼写单词有时候可能会写错,通过这种方式就可以避免这个问题。

当然这个也可以根据自己的习惯去添加,目的只是为了方便快速的插入一些经常用到的代码。

我们在VBE菜单——CommandBars对象里,对VBE里的菜单对象已经有了了解,要添加新的菜单,只要去操作CommandBars集合中的第一个对象即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Sub TestAdd()
    Dim cmd As CommandBarControl
    
    Set cmd = Application.VBE.CommandBars(1).Controls.Add(msoControlPopup)
    cmd.Caption = "测试"
End Sub

这个时候,在菜单栏上就多了一个“测试”的菜单,msoControlPopup表示添加的是一个弹出式的Control,这种弹出式的可以继续在其上面添加CommandBarControl:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
Sub TestDelete()
    On Error Resume Next
    Application.VBE.CommandBars(1).Controls("测试").Delete
End Sub

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

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MyVBA加载宏——添加自定义菜单02——给按钮添加单击事件
在2003版本之前的Excel里使用过VBA的话,应该接触过在Excel里添加自定义菜单,使用方法和前面说的在VBE里添加菜单是类似的。
xyj
2020/07/28
2.8K0
MyVBA加载宏——添加自定义菜单02——给按钮添加单击事件
MyVBA加载宏——添加自定义菜单04——功能实现
有了前面的功能分析基础,使用VBA代码实现这个功能就不是很难了,逐行读取CommandBarDir.txt里面的信息,然后创建弹出式菜单或者按钮,最终实现的效果如下:
xyj
2020/07/28
1.4K0
MyVBA加载宏——添加自定义菜单04——功能实现
MyVBA加载宏——添加自定义菜单03——功能分析
要自动更新是比较简单的,只要在加载宏打开的时候,执行一次添加菜单的功能即可,所以,需要在加载宏的Thisworkbook模块添加代码:
xyj
2020/07/28
9890
MyVBA加载宏——添加自定义菜单03——功能分析
在Excel中自定义上下文菜单(上)
上下文菜单(也称为快捷菜单)是在一些随用户交互之后出现的菜单,通常是鼠标右键单击操作。在Microsoft Office中,上下文菜单提供了一组在应用程序的当前状态或上下文中可用的有限选项。通常,可用的选择是与选定对象(如单元格或列)相关的操作。
fanjy
2022/11/16
2.8K0
在Excel中自定义上下文菜单(上)
VBA通用代码:自定义右键菜单
在《VBA通用代码:在Excel中创建弹出菜单》中,我们给出了一段在工作表中创建弹出菜单的代码,将给代码指定快捷键,这样通过按快捷键可以在工作表调用弹出菜单,从而执行其中的命令。
fanjy
2022/11/16
1.6K0
VBA通用代码:自定义右键菜单
EXCEL 自定义菜单
Dim XXX As CommandBarPopup Dim scrap As CommandBarPopup Dim about As CommandBarControl
Tony老师
2020/03/05
5160
在Excel中自定义上下文菜单(下)
在本文开头的VBA示例中,你看到了如何通过使用工作簿的Activate和Deactivate事件调用宏来创建和删除菜单控件,从而来更改单元格上下文菜单。
fanjy
2022/11/16
2.6K0
VBE菜单——CommandBars对象
这些在VBA里也提供了相应的对象让我们去操作,这个就是CommandBars对象。
xyj
2020/07/28
2.3K0
VBE菜单——CommandBars对象
VBA通用代码:在Excel中创建弹出菜单
弹出菜单(有时也称为上下文菜单或快捷菜单)是用户界面(UI)中的菜单,提供了一组命令选项,通过某些用户操作(如鼠标右键单击)在应用程序的当前状态或上下文中可用。
fanjy
2022/06/04
3.5K0
VBA通用代码:在Excel中创建弹出菜单
VBA代码:不同的工作表显示不同的弹出菜单
如果想要对每个工作表显示不同的菜单,或者仅在某些工作表中显示菜单,可以使用相应的代码来实现。
fanjy
2022/11/16
8960
VBA 给Excel添加自定义菜单栏
Sub SetMenu() Dim myBar As CommandBar Dim myButton As CommandBarButton Set myBar = CommandBars.Add(Name:="vb小源码", _ Position:=msoBarTop, _ MenuBar:=True) Set myButton = myBar.Controls.Add(msoContr
办公魔盒
2019/07/22
3.4K0
VBA 给Excel添加自定义菜单栏
一起学Excel专业开发21:Excel工时报表与分析系统开发(3)——自定义用户界面
一起学Excel专业开发20:Excel工时报表与分析系统开发(3)——自定义用户界面
fanjy
2019/11/07
1.9K0
一起学Excel专业开发21:Excel工时报表与分析系统开发(3)——自定义用户界面
Word VBA应用技术:列出文档中的所有书签
如果文档中设置了许多书签,如何清楚地看到它们并快速导航?一个好的方法是创建菜单实现,其中在菜单上为每个书签创建一个项目,这样在选取该项目时快速转到该书签。
fanjy
2023/02/16
1.2K0
Word VBA应用技术:列出文档中的所有书签
在Excel中自定义上下文菜单(中)
在下面的示例中,将创建与上文描述的示例相同的按钮和子菜单,但使用RibbonX创建。
fanjy
2022/11/16
1.7K0
在Excel中自定义上下文菜单(中)
创建MyVBA加载宏
MyVBA加载宏主要功能是设置为自动加载,作为打开其他宏文件的一个程序,做好后大概是这么一个东西:
xyj
2020/07/28
1.1K0
创建MyVBA加载宏
Excel实战技巧50: 避免因粘贴破坏数据有效性
Excel数据有效性(在Excel 2013及以上版本中改称数据验证)是一项很方便的功能,帮助我们让用户在单元格中输入规定的数据。然而,将数据复制粘贴到设置了数据有效性的单元格时,会破坏掉数据有效性设置。
fanjy
2019/07/29
7.3K0
Excel实战技巧50: 避免因粘贴破坏数据有效性
VBA快速提取引用工程的代码
在利用VBAProject来共用VBA代码里介绍了使用VBAProject管理代码的方法,但是有一个不方便的地方,如果想把一个做好的功能(引用了一些其他工程代码)发送给其他人使用,就需要把所引用的工程代码复制到一起,再发给其他人,这样手动处理有些麻烦。
xyj
2020/09/10
1.3K0
常用功能加载宏——拆分工作表
有合并工作表,自然也离不开拆分工作表,将一个总表,按照某一列的内容拆分为多个工作表,然后可以再结合前面的一个工作簿的工作表另存为工作簿功能,就可以生成多个工作簿进行分发了:
xyj
2020/07/28
2.4K0
常用功能加载宏——拆分工作表
VBA专题10-23:使用VBA操控Excel界面之添加动态菜单
在本系列后面的示例程序中,你将会看到如何使用项目和带图像的库控件通过getItemLabel和getItemImage回调属性引用的VBA过程在运行时动态地填充下拉控件。另一个允许动态填充其内容的控件是组合框控件。
fanjy
2021/03/26
6.2K0
VBA专题10-23:使用VBA操控Excel界面之添加动态菜单
一起学Excel专业开发17:Excel工时报表与分析系统开发(2)——创建特定应用加载宏
在《一起学Excel专业开发16:使用表驱动的方法管理工作表用户接口》中,我们已经创建了表驱动的用于接口工作簿的工作表。
fanjy
2019/10/22
1K0
一起学Excel专业开发17:Excel工时报表与分析系统开发(2)——创建特定应用加载宏
推荐阅读
相关推荐
MyVBA加载宏——添加自定义菜单02——给按钮添加单击事件
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验