永久自定义功能区

use*_*812 2 excel vba

我编写了一堆宏来减少办公室中重复性任务的耗时。我一直在编辑它们,添加功能和调整。每次,我都必须去办公室的每个员工那里,取消隐藏他们的 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文件,一个新的。

我希望这是您正在寻找的解决方案。