在自定义UI编辑器中使用XML向Word doc中的现有自定义选项卡添加新按钮

时间:2018-02-22 15:59:40

标签: xml ms-word

我在这里潜伏了很长时间并且已经获得了许多有用的答案,但我最终还是出于绝望而发布了这个初学者的问题 - 没有人可以帮助我!我非常感谢任何帮助,非常感谢你们。

我一直在更新我们在工作中使用的Word报告模板,并希望将一些宏嵌入其中。下载了Word的自定义UI编辑器后,我使用“插入/示例XML /自定义选项卡”功能添加了一个自定义选项卡(富有想象力地称为“宏”),上面有三个新按钮;然后我编辑了XML,为每个按钮分配了一个不同的格式化宏。这很好用,我很满意。

但是我现在想要在我的新标签中添加第四个按钮(和相应的宏)。在自定义UI编辑器中再次打开文档后,我发现当我尝试向现有的新选项卡添加第四个按钮时,我会得到另一个全新的选项卡(“宏2”,如果您愿意)包含原来的三个新按钮,第四个。所以我有两个同名的新标签,一个有三个按钮,一个有四个。

我做错了什么?如何改进我的工作方式/使用不同的XML来避免这个问题?如果它有帮助,我已经发布了我用于原始三个按钮的XML,但我希望我在某个地方犯了一个非常基本的错误,有人能指出我正确的方向。我搜索了这个网站(以及其他许多网站),但没有设法找到正在发生的事情和原因的解释。

用于原始三个按钮的代码(全部一次创建)

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
    <ribbon startFromScratch="false">
        <tabs>
            <tab id="customTab" label="Macros">
                <group id="customGroup" label="Formatting Macros">
                    <button id="customButton" label="Extract acronyms" imageMso="TextEffectShadowGallery" size="large" onAction="ExtractACRONYMSToNewDocument2" />
                    <button id="customButton2" label="Format sentence spacing" imageMso="TextEffectTracking" size="large" onAction="FormatSentenceSpacing" />
                    <button id="customButton3" label="Format current table" imageMso="TableSelectCell" size="large" onAction="FormatCurrentTableInHouseStyle" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

代码我正在使用尝试向功能区添加第四个按钮(但它会创建一个全新的选项卡,而不是仅仅向现有的新功能区添加按钮)

<button id="customButton4" label="Format current table" imageMso="UseThisImage" size="large" onAction="FormatTableMacro" />

我已经尝试过a)在Custom UI窗口中将新按钮XML添加到现有XML的底部(这导致上面描述的新选项卡问题),以及b)从窗口中删除所有现有XML并键入只有新按钮的XML(不起作用,仍然有一个全新的选项卡!)

谢谢大家......

1 个答案:

答案 0 :(得分:1)

XML对于什么可以在哪里有非常严格的规则:层次结构非常重要。

对于Ribbon XML,所有内容都必须嵌套在<customUI><ribbon>标记对中(并按此顺序)。所以如果你试图把别的东西放在外面&#34;其中,自定义用户界面编辑器正在努力避免您在使用该XML并为您制作新标签时遇到的错误。 (很酷,我不知道会这样做!)

按钮的层次结构状态非常低 - 因此必须在<tabs><tab>内嵌套(至少)。由于您要对按钮进行分组,因此它也必须位于<group>对标记内。

您可以编辑自定义UI编辑器向您显示的XML。按照以下步骤创建第四个按钮:

  1. 在自定义UI编辑器中打开文档。
  2. 在结束</group>代码前点击现有 XML。
  3. 按ENTER键创建新行。
  4. 将新的XML行放入新行。
  5. 保存并测试: - )