我编写了一堆宏来减少办公室中重复性任务的耗时。我一直在编辑它们,添加功能和调整。每次,我都必须去办公室的每个员工那里,取消隐藏他们的 PERSONAL.xlsb 文件,删除旧模块,添加新的和更新的模块。
这些宏是从功能区上的自定义选项卡控制的,有 15 个左右的按钮,每个按钮触发一个宏。时不时地,我必须在自定义选项卡上添加/删除/更改按钮,然后必须为办公室中的每个人单独完成。
我正在研究在功能区上编写按钮的脚本,但从我读过的内容来看,这似乎是不可能的。我最终根据我在本网站上看到的教程制作了一个 customui xlsm 文件,但这不好,因为如果 xlsm 工作簿隐藏或未打开,自定义选项卡就会消失。
基本上,我希望能够访问计算机,将 PERSONAL.xlsb 和 CUSTOMRIBBON.xlsm 复制到 XLSTART 文件夹中,然后立即准备好一切。
有办法吗?或者只是不可能...
小智 5
免责声明:此答案归功于 Ron de Bruin。
你真的不需要分开文件。您所需要的只是一个存储功能区和代码的文件。按照下面的操作来看看这是如何工作的......
按照Ron de Bruin 的教程使用Microsoft Office 的自定义 UI 编辑器向功能区添加控件。
就这么简单
创建一个工作簿并将其另存为加载项CustomRibbon.xlam并将该文件放入C:\Users\yourUserName\AppData\Roaming\Microsoft\AddIns\
下载Microsoft Office 的自定义 UI 编辑器。当您打开它时,您要加载CustomRibbon.xlam并右键单击它并选择Office 2010 Custom UI

在窗口的右侧粘贴以下 XML
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome" >
<group id="customGroup1" label="My Group" insertAfterMso="GroupEditingExcel">
<button id="customButton1" label="Click Me" size="large" onAction="Macro1" imageMso="HappyFace" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Run Code Online (Sandbox Code Playgroud)保存更改并关闭程序。
打开 Excel,您应该会在功能区上看到新图标

CustomRibbon.xlam但您必须直接打开CustomRibbon.xlam并打开 VBE 并插入一个模块。然后在模块中粘贴以下内容 Sub Macro1(control As IRibbonControl)
MsgBox "Hi There"
End Sub
再次,保存并关闭。请注意,在 XML 中,您已为OnAction属性分配了一个值Macro1。显然有更多的按钮和更多的宏,你可以为每个按钮分配触发器。
打开开发人员选项卡,单击加载项并确保您CustomRibbon已打开
现在打开 Excel(不是 CustomRibbon ),当您单击功能区上的笑脸按钮时,代码Macro1应该执行并显示一个消息框
所以你可以看到,如果你把所有的业务逻辑和色带的在XMLCustomRibbon.xlam并保存它作为一个附加的每一台机器上,那么当你更新原来CustomRibbon所有您需要每个客户端上做的仅仅是覆盖CustomRibbon文件,一个新的。
我希望这是您正在寻找的解决方案。