在Excel中自动添加一个加载项的单个菜单项
我正在使用Microsoft Excel 2010 for Windows。
我已经开发了一个插件addin.xlam
,其中包含一个子main
。 addin.xlam
是在正确的位置,以便通过菜单Developer -> Add-Ins
可见和可选。 当我打开一个正常的工作簿test.xlsm
,然后按Alt + F11
,我可以看到addin.xlam
的代码被加载。
我的目标是添加一个菜单项到Excel的菜单栏,允许用户启动add-in.xlam
。 通过下面这个链接 ,我在addin.xlam
代码如下:
Option Explicit Dim cControl As CommandBarButtonPrivate Sub Workbook_AddinInstall() On Error Resume Next 'Just in case 'Delete any existing menu item that may have been left. Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete 'Add the new menu item and Set a CommandBarButton Variable to it Set cControl = Application.CommandBars("Worksheet Menu Bar").Controls.Add 'Work with the Variable With cControl .Caption = "Super Code" .Style = msoButtonCaption .OnAction = "main" 'Macro stored in a Standard Module End With On Error GoTo 0 End Sub Private Sub Workbook_AddinUninstall() On Error Resume Next 'In case it has already gone. Application.CommandBars("Worksheet Menu Bar").Controls("Super Code").Delete On Error GoTo 0 End Sub
这个代码放在addin.xlam
ThisWorkbook
中,它也在addin.xlam
可见。 但是在菜单栏中我看不到任何改变。
有谁知道发生了什么?
AddinInstall和AddinUninstall事件只有在使用Excel Addin Manager“安装”或“卸载”插件时才会触发。
恕我直言,这可能会导致问题,所以我总是build议使用Workbook_Open和Workbook_BeforeClose事件。
Charles是正确的,您需要将Workbook_AddinInstall()
replace为Workbook_Open()
,并将Workbook_AddinUninstall()
replace为Workbook_BeforeClose()
。
此外,您需要CommandBarButton
而不是CommandBarButtonPrivate
。
祝你好运!