VBA 如何在菜单栏上添加按钮
主菜单上添加自定义按钮
1 2 3 4 5 6 7 8 | Sub addbtn() Set myMenu = Application.CommandBars( "worksheet menu bar" ) Set Button = myMenu.Controls.Add(Type:=msoControlButton) Button.Caption = "Caption" '按钮上的文字,填写你需要的 Button.Style = msoButtonIconAndCaption Button.FaceId = FaceId '按钮图标,数字比如8,系统存在的 Button.OnAction = "OnAction" '按钮执行的宏名,填写你自己的宏名 End Sub |
1 2 3 4 5 6 7 | If C < 7 Or C > 8 Or r < 6 Then Exit Sub 如果上面结果为 true ,那么Application.EnableEvents = False,以后就不现响应 Worksheet_Change, 改为下面代码试一下: If C < 7 Or C > 8 Or r < 6 Then Application.EnableEvents = True Exit Sub End If |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 你好: 請參考: 1.新增一個增益級專案(COM Addin)取名為 AddinXL,並寫入以下程式碼 Option Explicit Implements IDTExtensibility2 Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant) End Sub Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant) End Sub Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant) Set xlapp = Application Set MenuEvents = New ToolsMenuEvents MenuEvents.CreateMenuItems End Sub Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) MenuEvents.DeleteMenuItems End Sub Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant) End Sub 2.新增一個Class 模組,取名為 ToolsMenuEvents,並寫入以下程式碼 Private WithEvents btnMenuItem1 As Office.CommandBarButton Private WithEvents btnMenuItem2 As Office.CommandBarButton Private WithEvents btnMenuItem As Office.CommandBarButton Sub CreateMenuItems() With xlapp.CommandBars(1).Controls.Add(Type:=msoControlPopup, Temporary:=True) .Caption = "MyToolBar" Set btnMenuItem1 = .Controls.Add With btnMenuItem1 .Caption = "計算" .BeginGroup = True End With Set btnMenuItem2 = .Controls.Add With btnMenuItem2 .Caption = "統計" .BeginGroup = False End With End With End Sub Sub DeleteMenuItems() On Error Resume Next xlapp.CommandBars(1).Controls( "MyToolBar" ).Delete End Sub Private Sub btnMenuItem1_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) MsgBox "計算" End Sub Private Sub btnMenuItem2_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean) MsgBox "統計" End Sub 3.新增一個Module,並宣告以下變數 Option Explicit Option Private Module Public xlapp As Excel.Application Public MenuEvents As ToolsMenuEvents 4.將此專案名稱更名為TestToolsMenuEvents 完成後如附圖所示 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!