【VBA】向Excel中添加菜单

以下代码用于向Excel菜单栏中添加菜单。是临时菜单,不是永久菜单。

使用目的:

将后台代码实现的功能以菜单的形式显示出来,供用户使用。

使用方法:

直接调用过程名即可,也可在Workbooks_Open中调用可实现打开Excel即加载,易用。

注意事项:

(1)先点击按钮生成菜单,然后再打开Excel时,此时新Excel中会自动加载同样的菜单。所以,我们让用户先打开我们的程序,然后再打开她要操作的表,然后再她的表上点击按钮即可。
(2)此菜单是临时菜单不会永久停留在Excel中,当当前Excel进程完全结束后,就会消失。所以一般不用担心,会对Excel程序造成损坏什么的。
(3)当你的两个Excel不是一个进程时,那么菜单是不会在另一个上显示的。比如说,用了两次CreateObject创建的Excel就不属于同一个进程,一个显示菜单后,另一个,即使是后创建打开的,也是不显示菜单的。(一般不用考虑。出问题时能想到可能有此问题即可。)

Sub Add_Click()
    
    Dim mm(10)
    Dim nn(10)
    
    For Each Menu In Application.CommandBars
            '防止要添加的菜单组已经存在而出错。
            If InStr(Menu.Name, "Menu1") > 0 Then
              Application.CommandBars(Menu.Name).Delete
            End If
    Next
    'DisplayName是菜单显示的名称,SUBNAME是后台代码的过程名。
    '第1个菜单
    mm(1) = "DisplayName1"
    mm(2) = "SUBNAME1"
    '第2个菜单
    nn(1) = "DisplayName2"
    nn(2) = "SUBNAME2"
    '...加多少个都行。
    
    Set Menu = Application.CommandBars.Add(Name:="Menu1", Position:=msoBarTop, Temporary:=True)
    '新添加的菜单可见
    Menu.Visible = True
    For N = 1 To 2  '此处根据要添加的菜单数量变更即可。
            Set mn = Menu.Controls.Add(Type:=1)
            mn.Caption = nn(N)
            mn.Visible = True
            mn.OnAction = mm(N)
            mn.FaceId = 1265  '这个数字是菜单的图案,挑喜欢的就好。
            mn.Style = 3
    Next
End Sub
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel VBA的Form菜单设计为用户提供了创建自定义用户界面的功能。通过使用Form菜单设计,您可以在Excel工作簿添加各种控件,如按钮、文本框、下拉列表和复选框,以实现用户友好的操作体验。 在Form菜单设计,您可以通过拖放和调整控件来设计用户界面。您可以选择所需的控件,并根据需要调整它们的位置、大小和样式。此外,您还可以使用VBA编写代码来定义控件的行为和功能。 例如,您可以在Form菜单设计添加一个按钮,并在点击按钮时执行特定的操作。通过为按钮添加VBA代码,您可以定义按钮的Click事件,并编写相关代码实现所需的功能。同样,您可以为文本框添加TextChanged事件,在文本更改时自动执行特定的操作。 Form菜单设计还允许您创建自定义的对话框,并在Excel VBA代码调用它们。通过创建自定义对话框,您可以与用户进行交互,输入和检索数据,并根据用户的选择进行相应的处理。 除了控件的设计和功能,Form菜单设计还提供了丰富的样式选项,用于自定义用户界面的外观。您可以更改控件的颜色、字体、背景等,以符合您的设计要求。 总而言之,Excel VBA的Form菜单设计是一个强大的工具,提供了丰富的控件和功能选项,使您能够创建自定义的用户界面,并与用户进行交互。通过合理利用Form菜单设计和VBA编程,您可以提高Excel工作簿的用户体验,并实现更高效的数据处理和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值