拥有一个可用的宏,我想重复使用它。即,在工具栏上创建一个按钮(带有名称+图标),以启动宏。尝试了一些教程(例如:http://www.officetooltips.com/excel/tips/create_a_toolbar_button_or_menu_item_to_run_a_macro.html),但我也想将创建代码打包到某个文件中,这样点击时就会安装宏。
是否有一种简单的方法可以做到这一点,如果是的话,还是如何做到的? (最佳选择适用于Windows和Mac)
答案 0 :(得分:1)
更新4/20:关于构建加载项的复杂性的好评。话虽这么说,我确定这里的老定时器会说值得做的事情值得做对:)。以下是创建加载项的简短演练:
(1)保存xlsm
或xlsb
文件,其名称对于加载项的版本而言很容易递增。
(2)将以下脚本添加到ThisWorkbook中,以确保在打开工作簿和激活工作簿时创建菜单栏:
Private Sub Workbook_Open()
Call CreateMenuBar
End Sub
Private Sub Workbook_Activate()
Call CreateMenuBar
End Sub
(3)创建一个新模块并添加以下代码以创建,删除和更新菜单栏:
Option Explicit
Sub CreateMenuBar()
Dim MenuObject As CommandBarPopup
Dim MenuItem As Object
Dim SubMenuItem As Object
'clear the old menu bar
Call DeleteMenuBar("&MyMenuBar")
'create the menu bar and drop down options
Set MenuObject = Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, _
before:=10, Temporary:=True)
MenuObject.Caption = "&MyMenuBar"
MenuObject.OnAction = "UpdateMenuBar"
'first level menu option
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
MenuItem.Caption = "&First Menu Stuff"
'link to first script
Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubMenuItem.Caption = "&First Script"
SubMenuItem.OnAction = "Script1"
'link to second script
Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubMenuItem.Caption = "&Second Script"
SubMenuItem.OnAction = "Script2"
'first level menu option
Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
MenuItem.Caption = "&Second Menu Stuff"
'link to third script
Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
SubMenuItem.Caption = "&Third Script"
SubMenuItem.OnAction = "Script3"
End Sub
Sub DeleteMenuBar(MenuName As String)
On Error Resume Next
Application.CommandBars(1).Controls(MenuName).Delete
On Error GoTo 0
End Sub
Sub UpdateMenuBar()
'do special checks, like verifying sheets, in this routine
End Sub
(4)验证脚本是否正常工作并保存文件。
(5)将文件再次保存为xlam
或xla
文件,并将其分发给用户。吊杆!
- 以下原帖 -
这是一个加载项在Windows Excel实例中的样子:
以下是Mac Excel实例中的加载项:
如果您为一组用户开发了许多脚本并希望确保他们使用相同的代码,则加载项非常方便。
答案 1 :(得分:0)
我在另一个问题上发布了这个问题,但这不是他们想要的。这对你有用吗?
在Excel选项中,单击“自定义功能区”。在您可以添加的内容列表上方,应该有一个下拉框,您可以在其中选择宏。然后应该使用宏来填充列表以添加到功能区中!