如何在没有xmlns / idQ的情况下将组添加到(VBA)自定义功能区?

时间:2015-05-05 07:59:16

标签: vba excel-vba word-vba ribbon powerpoint-vba

情况:

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

并发症:

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

知道我们如何才能实现添加按钮吗?

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

3 个答案:

答案 0 :(得分:6)

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

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

然后创建其他加载项可以共享的新选项卡:

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

答案 1 :(得分:5)

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

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

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

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

答案 2 :(得分:1)

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

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