【问题标题】:How to add a group to a (VBA) custom ribbon without xmlns/idQ?如何在没有 xmlns/idQ 的情况下将组添加到(VBA)自定义功能区?
【发布时间】:2015-07-14 20:23:18
【问题描述】:

情况:

  • 用户拥有通过 .PPAM(VBA 宏和功能区自定义 XML 的组合)添加的现有自定义功能区。
  • 我们希望通过我们的托管 COM 加载项向该自定义功能区添加一个组
  • 对于来自其他托管 COM 加载项的自定义功能区,这可以通过 xmlns:foo="bar" & idQ 从 customUI Link 中提取

并发症:

  • 来自非托管加载项的自定义功能区似乎没有 xmlns 命名空间,它们不会显示在 customUI 中
  • 即使通过 PowerPoint/Office,用户也无法自定义这些功能区。

知道如何实现添加按钮吗?

我们可以请求更改非托管/VBA 加载项。

【问题讨论】:

  • 您查看过这些信息并尝试过自定义 UI 编辑器吗? rondebruin.nl/win/s2/win001.htm
  • @rdhs 谢谢,我查看了,但没有找到任何解决此问题的内容。

标签: vba excel ms-word ribbon powerpoint


【解决方案1】:

VBA 插件默认没有自己的命名空间,但可以有一个。例如,如果您创建自定义命名空间,则多个 VBA 加载项可以共享功能区上的同一选项卡。

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"
xmlns:nsMySpace="SomeName">

然后创建一个其他插件可以共享的新选项卡:

<tab idQ="nsMySpace:MySpace_Tab" label="MyTabLabel">

【讨论】:

    【解决方案2】:

    除了 Steve 的回答,我们发现 VBA 加载项具有默认命名空间,即使在其 customUI 中未指定任何命名空间也是如此。

    您可以通过将功能区中的控件添加到快速访问然后导出 UI 自定义来提取命名空间。结果文件应显示:

    <mso:cmd app="PowerPoint" dt="1" />
    <mso:customUI xmlns:x1="C:\Users\USERNAME\AppData\Roaming\Microsoft\AddIns\Addin.ppam">
    

    所以默认命名空间似乎是加载项的完整路径。

    【讨论】:

    • 同上。很有趣!
    【解决方案3】:

    从较高的角度来看,两个加载项可以共享控件的功能区选项卡,因为它们被加载到单个 PowerPoint 实例中。当您使用自定义 UI 开发启用宏的文件时 - 只能同时打开此文件。但是可以为文件/模板运行两个加载项。这就是为什么 idQ 旨在供加载项使用。

    您可以在 MSDN 的以下系列文章中阅读有关 Fluent UI(Ribbon UI)的更多信息:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多