我编写了一堆宏,以减少办公室中重复性任务的耗时。 我不断地编辑它们,添加功能并进行调整。 每次,我都必须走遍办公室的每个员工,取消隐藏他们的 PERSONAL.xlsb 文件,删除旧模块,添加新的和更新的模块。
这些宏是通过功能区上的自定义选项卡进行控制的,其中包含 15 个左右的按钮,每个按钮都会触发一个宏。 我时不时地必须在自定义选项卡上添加/删除/更改按钮,然后必须为办公室中的每个人单独完成这些操作。
我正在考虑将按钮编写到功能区上,但从我所读到的内容看来这是不可能的。 我最终根据我在本网站上看到的教程制作了一个 customui xlsm 文件,但这不好,因为如果 xlsm 工作簿被隐藏或未打开,自定义选项卡就会消失。
基本上,我希望能够转到计算机上,将 PERSONAL.xlsb 和 CUSTOMRIBBON.xlsm 复制到 XLSTART 文件夹中,然后立即准备好。
有办法吗?还是根本不可能……
最佳答案
免责声明:此答案归功于 Ron de Bruin。
您实际上不需要分隔文件。您所需要的只是一个存储功能区和代码的文件。请按照以下步骤查看其工作原理...
关注Ron de Bruin's tutorial使用Custom UI Editors for Microsoft Office向功能区添加控件.
就这么简单
创建工作簿并将其另存为加载项
CustomRibbon.xlam
并将该文件放入C:\Users\yourUserName\AppData\Roaming\Microsoft\AddIns\
下载Custom UI Editors for Microsoft Office 。当您打开它时,您想要加载
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>
保存更改并关闭程序。
打开 Excel,您应该会在功能区上看到新图标
- 您可以将宏分配给
CustomRibbon.xlam
中的按钮,但您必须直接打开CustomRibbon.xlam
并打开 VBE 并插入模块。然后在模块中粘贴以下内容
子宏 1(控制为 IRibbonControl)
消息框“你好”
结束子
再次保存并关闭。请注意,在 XML 中,您已将
OnAction
属性的值分配给Macro1
。显然,有了更多的按钮和更多的宏,您可以在其中为每个按钮分配触发器。打开“开发人员”选项卡,单击“加载项”并确保您的
CustomRibbon
已打开现在打开 Excel(不是 CustomRibbon ),当您单击功能区上的笑脸按钮时,
Macro1
中的代码应该执行,显示一个消息框
正如您所看到的,如果您将所有业务逻辑和功能区的 XML 放入 CustomRibbon.xlam
中,并将其保存为每台计算机上的加载项,那么当您更新原始 CustomRibbon
您在每个客户端上所需要做的就是用新文件覆盖 CustomRibbon
文件。
我希望这是您正在寻找的解决方案。
关于excel - 永久自定义功能区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052944/