永久定制功能区

时间:2014-06-05 06:19:58

标签: excel vba

我写了一堆宏来让办公室里的重复性任务耗费时间。 我一直在编辑它们,添加功能和调整。 每次,我都要去办公室的每个员工,取消隐藏他们的PERSONAL.xlsb文件,删除旧模块,添加新的和更新的模块。

这些宏由功能区上的自定义选项卡控制,有15个左右的按钮,每个按钮触发一个宏。 我不得不在自定义选项卡上添加/删除/更改按钮,然后必须为办公室中的每个人单独完成。

我正在研究将按钮编写到功能区上的脚本,但这似乎不可能从我读过的内容中看出来。 我最后根据我在本网站上看到的教程制作了一个customui xlsm文件,但这并不好,因为如果xlsm工作簿被隐藏或未打开,自定义选项卡就会消失。

基本上,我希望能够访问计算机,将PERSONAL.xlsb和CUSTOMRIBBON.xlsm复制到XLSTART文件夹中,并准备好立即使用。

有办法吗?或者它是不可能的......

3 个答案:

答案 0 :(得分:4)

免责声明:此答案归功于Ron de Bruin。


你真的不需要分开文件。您只需要一个存储功能区和代码的文件。按照以下方式查看其工作原理......


关注使用Ron de Bruin's tutorial向Ribbon添加控件的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

enter image description here

  • 在窗口的右侧粘贴以下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,您应该会在功能区上看到新图标

enter image description here

  • 您可以为CustomRibbon.xlam中的按钮指定一个宏,但您必须直接打开CustomRibbon.xlam并打开VBE并插入模块。然后在模块中粘贴以下内容

Sub Macro1(control As IRibbonControl) MsgBox "Hi There" End Sub

  • 再次保存并关闭。请注意,在XML中,您已将OnAction属性的值分配给Macro1。显然,有更多按钮和更多宏,您可以为每个按钮分配触发器。

  • 启用开发人员标签,点击加载项,确保CustomRibbon已开启

  • 现在打开Excel(而不是CustomRibbon),当您单击功能区上的笑脸按钮时,Macro1中的代码应该执行,显示消息框

    < / LI>

正如您所看到的,如果您将所有业务逻辑和功能区的XML放在CustomRibbon.xlam中并将其作为加载项保存在每台计算机上,那么当您更新原始CustomRibbon时1}}您在每个客户端上所做的只是用新的文件覆盖CustomRibbon文件。

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

答案 1 :(得分:0)

对于仍然遇到此问题的人:

如上所述,CustomRibbon.xlam文件应保存/位于C:\Users\yourUserName\AppData\Roaming\Microsoft\AddIns\

我怀疑没有运气的人在CustomUI上错过了本网站的一些必需XML字段:

阅读自定义用户界面代码

在xml代码中,您可以看到自定义UI的每个部分都有一个标题:

  • 命名空间
  • 丝带
  • 标签
  • 按钮

每个项目都有唯一的ID,标签以及其他属性,例如单击按钮时运行的图标和宏。

For example, here is the code for one of the buttons in the Contoso Tools group. Line breaks were added, to make the code easier to read.

Excel功能区自定义按钮代码

  • ID - customButton1 - 是唯一的。每个ID只能使用一次 代码。
  • 标签 - ConBold - 是显示在按钮上的文字 功能区选项卡。
  • 图像 - 粗体 - 也会出现在按钮上
  • 尺寸设置为“大”,因此在功能区上很容易看到。
  • onAction - conBoldSub - 是将运行的宏的名称 点击按钮时。

它导致了问题,因为代码的一些必填字段(customUI,功能区,制表符......)在上面的已发布答案中被截断,完整的完整代码是:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon startFromScratch="false">
        <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>

一旦存在所有必需的XML字段,它应该按预期工作。 此时遵循原始答案说明,它应该顺利工作。

答案 2 :(得分:0)

他们最近更新了自定义UI编辑器软件,以支持所有版本的MS Office,因为早期版本未正确支持较高版本(Office 2010 +)

现在该软件已重命名为 OFFICE RIBBONX EDITOR ,并且可以下载

以下是更多信息和下载的链接:

https://www.rondebruin.nl/win/s2/win001.htm

https://github.com/fernandreu/office-ribbonx-editor/releases/latest

非常感谢'Ron de Bruin','Fernando Andreu'和'Trang Luu'