让VBA从excel文件中独立出来

vba固然好用,但是随着vba代码版本的迭代,维护vba变得越来越恼火,尤其是把包含vba的xlsm宏文件分发给很多人使用的情况。

94444ca10ac947acb51f6c0ffd08694f.png

我推荐使用加载宏文件xla格式存储vba代码。将vba功能保存为独立的xla文件。需要使用的时候,双击运行一下。就能在excel的菜单来看到对应的菜单和按钮。效果如下:

7f4b2906efe741f88989e1f2e372299e.png

后期我想修改或者迭代,只需要修改这个独立的加载宏文件。其他人只需要运行我最新的这个加载宏文件即可。以前的excel还是独立的文档,互不影响。

增添加菜单的代码,可以参考大模型提供的vba代码:

Option Explicit

Private Sub Workbook_Open()
    Dim objPopUp As CommandBarPopup
    Dim objBtn As CommandBarButton
    
    ' 删除已存在的相同自定义菜单
    On Error Resume Next
    Application.CommandBars("Worksheet Menu Bar").Controls("MyFunction").Delete
    On Error GoTo 0
    
    ' 创建一个新的弹出式菜单
    Set objPopUp = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, temporary:=True)
    objPopUp.Caption = "&MyFunction"
    
    ' 添加菜单项
    Set objBtn = objPopUp.Controls.Add(Type:=msoControlButton)
    With objBtn
        .Caption = "Formula Entry"
        .OnAction = "Cbm_Active_Formula"
        .Style = msoButtonCaption
    End With
    
    ' 继续添加其他菜单项...
    
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ' 工作簿关闭前删除自定义菜单
    With Application.CommandBars("Worksheet Menu Bar")
        On Error Resume Next
        .Controls("&MyFunction").Delete
        On Error GoTo 0
    End With
End Sub

上述代码主要是有两个动作:

1、在打开excel文件的时候添加自定义菜单

2、在关闭excel的时候,删除自定义菜单

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flashman911

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值