当前位置:首页 > 实用技巧 >

vba代码添加到excel菜单(excel插入VBA代码)

来源:原点资讯(www.yd166.com)时间:2023-05-12 06:36:42作者:YD166手机阅读>>

大家好,我们今日继续讲解VBA代码解决方案的第121讲内容:如何在Excel工作表的菜单中自定义添加新的菜单项和子菜单

在我之前的文章中讲到,我最初VBA是学习前辈的代码,前辈的文件响应代码就是通过菜单的自定义来实现的,今日我们也来谈谈自定义菜单的问题。添加菜单可以用Add方法。

Add方法应用于CommandBarControls对象时,新建一个CommandBarControl对象并添加到指定命令栏上的控件集合,语法如下:

expression.Add(Type, Id, Parameter, Before, Temporary)

参数expression 是必须的,返回一个CommandBarControls对象,代表命令栏中的所有控件。

参数Type是可选的,添加到指定命令栏的控件类型,可以为下面所列的常数之一。

msoControlButton 1 命令按钮

msoControlEdit 2 文本框

msoControlDropdown 3 下拉列表控制框

msoControlComboBox 4 下拉组合控制框

msoControlPopup 10 弹出式控件

参数Id是可选的,标识整数。如果将该参数设置为 1或者忽略,将在命令栏中添加一个空的指定类型的自定义控件。

参数Parameter是可选的,对于内置控件,该参数用于容器应用程序运行命令。对于自定义控件,可以使用该参数向Visual Basic过程传递信息,或用其存储控件信息。

参数Before是可选的,表示新控件在命令栏上位置的数字。新控件将插入到该位置控件之前。如果忽略该参数,控件将添加到指定命令栏的末端。

参数Temporary是可选的。设置为True将使添加的菜单项为临时的,在关闭应用程序时删除。默认值为False。

下面我们就一个实例来讲解如何添加菜单。如下面的代码所示。

Sub MynzTools()

Dim myTools As CommandBarPopup

Dim myCap, myAct As Variant

Dim myid As Variant

Dim i As Byte

myCap = Array("VBA代码解决方案1", "VBA代码解决方案2", "VBA代码解决方案3")

myAct = Array("myNz1", "myNz2", "myNz3")

With Application.CommandBars("Worksheet menu bar")

.Reset

Set myTools = .Controls.Add(Type:=msoControlPopup)

With myTools

.Caption = "VBA学习"

.BeginGroup = True

For i = 1 To 3

With .Controls.Add(Type:=msoControlButton)

.Caption = myCap(i - 1)

.OnAction = myAct(i - 1)

End With

Next

End With

End With

Set myTools = Nothing

End Sub

Sub MynzDelmyTools()

Application.CommandBars("Worksheet menu bar").Reset

End Sub

Sub myNz1()

MsgBox "欢迎学习VBA代码解决方案第一册"

End Sub

Sub myNz2()

MsgBox "欢迎学习VBA代码解决方案第二册"

End Sub

Sub myNz3()

MsgBox "欢迎学习VBA代码解决方案第三册"

End Sub

vba代码添加到excel菜单,excel插入VBA代码(1)

代码解析:myTools过程使用Add方法在Excel工作表菜单栏中加一个标题为"VBA学习"的菜单项和3个子菜单。

第2行到第5行代码声明变量类型。

第6,7行代码使用Array函数创建数组用于保存子菜单的名称,和菜单的动作

第9行代码,在添加菜单项前先使用Reset方法重置菜单栏以免重复添加菜单项。Reset方法重置一个内置控件,恢复该控件原来对应的动作,并将各属性恢复成初始状态,

语法如下:expression.Reset

参数expression 是必须的,返回一个命令栏或命令栏控件对象。

第10行代码,使用Add方法在Excel工作表菜单栏中添加菜单项。因为在本例中将添加的是带有子菜单的菜单项,所以将参数Type设置为弹出式控件。

第12行代码,设定新添加菜单项的Caption属性为"VBA学习"。Caption属性返回或设置命令栏控件的标题。

第13行代码,设置新添加菜单项的BeginGroup属性为True,分组显示。

第14行到第18行代码,在"VBA学习"菜单项上添加3个子菜单并设置其Caption属性。和相应的动作。

好了,我们看我们的运行效果:

运行前界面:

vba代码添加到excel菜单,excel插入VBA代码(2)

点击添加菜单:

vba代码添加到excel菜单,excel插入VBA代码(3)

点击"VBA代码解决方案1":弹出对话框效果。

vba代码添加到excel菜单,excel插入VBA代码(4)

上述代码中:

Sub MynzDelmyTools()

Application.CommandBars("Worksheet menu bar").Reset

End Sub

是重置菜单,也就是说在退出前要重置一下菜单。

关于菜单内容还有一些内容,或许充实到结集后的文章中。本篇的文章太长了。

今日内容回向:

1. 如何设置菜单?

2 如何让菜单响应不同的动作?

栏目热文

如何解除浏览器弹窗拦截(浏览器弹出窗口拦截怎么解决)

如何解除浏览器弹窗拦截(浏览器弹出窗口拦截怎么解决)

当前,随着人们日常使用互联网的普及和广泛应用,弹窗广告已经成为了一种拦路虎。作为一个突兀的页面,在用户访问网络时不断地弹...

2023-05-12 07:21:10查看全文 >>

浏览器拦截弹出窗口在哪设置(浏览器阻止弹出窗口怎么设置)

浏览器拦截弹出窗口在哪设置(浏览器阻止弹出窗口怎么设置)

手机总跳出来广告太烦人,当你在某购物平台看了什么,手机立马就会给你推送相关的商品信息给你,手机就像懂我们的心思一样,其实...

2023-05-12 07:06:29查看全文 >>

浏览器弹出窗口拦截功能如何打开(浏览器弹出窗口拦截功能在哪)

浏览器弹出窗口拦截功能如何打开(浏览器弹出窗口拦截功能在哪)

烦人的网页弹窗无处不在?我们在网上查资料的时候,都需要在浏览器中打开网页。有些网站上总是会有弹窗通知弹出,我们要不停地关...

2023-05-12 06:49:52查看全文 >>

浏览器拦截窗口如何解除(怎么设置浏览器拦截窗口)

浏览器拦截窗口如何解除(怎么设置浏览器拦截窗口)

如果你的网站域名被QQ拦截并提示“当前网页非官方页面”,这可能是因为你的网站存在某些问题,被判定为垃圾信息或者安全风险,...

2023-05-12 07:07:48查看全文 >>

浏览器弹出窗口拦截功能(怎么关闭谷歌浏览器弹出窗口拦截功能)

浏览器弹出窗口拦截功能(怎么关闭谷歌浏览器弹出窗口拦截功能)

以前,我们看到街上总是贴了一些小广告,很多人称之为“牛皮癣”。现在互联网发达之后,这些“牛皮癣”也学会进化了,从大街小巷...

2023-05-12 06:49:54查看全文 >>

excel用vba添加菜单(excel通过vba添加按钮)

excel用vba添加菜单(excel通过vba添加按钮)

大家好,世界各地,疫情施虐。疫情过后会是什么?对于后疫情时代大家很难预测,或许是供应链的断裂,经济下行的压力加大,但可以...

2023-05-12 07:22:31查看全文 >>

excel制作vba三级菜单(excel vba 树形菜单代码)

excel制作vba三级菜单(excel vba 树形菜单代码)

人性的孽根性就在于不知足。但对于学习有用的东西却需要这种不知足,知道自己最重要的是什么,知道不重要的东西是什么,不要蜷缩...

2023-05-12 06:40:02查看全文 >>

用vba制作excel外观和菜单(vba制作满屏excel登录界面)

用vba制作excel外观和菜单(vba制作满屏excel登录界面)

上一篇和大家分享了公式版本的二级菜单制作,今天分享一篇VBA版本的二级菜单。VBA版本不需要过多的辅助项,这里只需要一列...

2023-05-12 06:59:28查看全文 >>

如何用excel vba制作简单程序(excel中vba使用教程)

如何用excel vba制作简单程序(excel中vba使用教程)

运行Excel程序,新建一个工作簿(格式.xlsm),进入VBE,让我们动手编写一个简单的程序,当程序运行后,用一个对话...

2023-05-12 07:11:43查看全文 >>

vba在excel中常用实例(excel vba从入门到进阶)

vba在excel中常用实例(excel vba从入门到进阶)

很多人学完VBA基本语法后,不知道该怎么继续往下学了,我推荐这个资料非常有用,里面包含了Excel VBA的各种技巧、经...

2023-05-12 07:17:14查看全文 >>

文档排行