Word 2010:如何在qat中创建下拉菜单(快速访问工具箱)

时间:2013-01-17 23:55:15

标签: vba customization office-2010 word-2010 ribbonx

SHORT: 我想通过在Word的启动文件夹中放置一个自定义的.dotm文件,将一个下拉菜单添加到任何Word 2010实例的快速访问工具栏中。我在创建此自定义.dotm文件时失败。

LONG: 我一直在为Word 2010编写一个小小的“插件”,首先使用VSTO,然后找出部署的问题,现在使用VBA。该插件应简化将我公司的徽标和法律声明添加到文档中(存在徽标和法律声明的不同组合)。

为了允许用尽可能少的点击选择希望的徽标和法律声明,我考虑自动将一个下拉菜单添加到快速访问工具栏(qat)。我想通过放置一个包含此qat-extension&的代码的.dotm文件来实现此目的。用户的Word启动文件夹中页眉/页脚设置的逻辑。

我已经成功使用CustomUI将这样的下拉菜单添加到Add-Ins-Ribbon,一切都在代码端正常工作。通过菜单,用户可以从提供的所有预设中进行选择,并且成功添加页眉和页脚。

此外,我已经看到并玩过成功地将控件直接添加到qat的示例。

如果放在我的启动文件夹中,这些示例做得很好,其中定义的控件出现在任何Word实例上。要做的是在.dotm文档中创建一个新文件夹“userCustomization”,然后创建具有几个限制的customUI.xml文件(例如,不允许自定义图标)。

不幸的是,我无法弄清楚如何在qat中实现下拉菜单控件。我发现的所有示例都只使用了“简单”(按钮)控件,无论我尝试在标签中包装按钮多少次,我都没有使用它。

另一方面,我可以通过“qat =>添加控件”手动添加我的色带到qat和..voilà..它就在那里,完全按照需要工作,所以我想它一定是可能的。但我需要的是自动执行此操作,以便我们的用户不必对qat进行任何配置。

非常感谢帮助!来自德国的问候, 库尔特

这是下拉菜单添加到Add-Ins选项卡的方式:          

<ribbon>  
<tabs>  
<tab idMso="TabAddIns">    
<group id="MyGroup" label="WordDesigner" visible="false">       

    <menu id="myMenu" label="Design einfügen" size="large" image="menulogo">
    <menu id="mySubMenu" label="Rechnungswesen" image="icon2">  
        <button id="MahnUndKlage"  label="Mahn- und Klage" image="icon3" onAction="DesignAnwenden"/> 
        <button id="Buchhaltung"  label="Buchhaltung" image="icon3" onAction="DesignAnwenden"/>    
    </menu>
    <button id="Personalabteilung"  label="Personalabteilung" image="icon3" onAction="DesignAnwenden"/>
    <button id="Verkauf"  label="Verkauf" image="icon4" onAction="DesignAnwenden"/>
    <button id="clearHeaderAndFooter"  label="Gestaltung entfernen" image="icon5" onAction="DesignAnwenden"/>   
    </menu>
</group>
</tab>
</tabs>
</ribbon>
</customUI>

我发现的有用信息包括:

2 个答案:

答案 0 :(得分:2)

好吧,一些更多的研究已经获得了更多信息(......),如果其他人可能会搜索类似的问题,我会试着总结一下我得到的信息......

  • 1)根据QAT上的this MS页面,只有Button, ToggleButton和CheckBox是Win7中QAT的有效项(Win8 允许一些更多的控制。)

  • 由于您也可以手动添加下拉菜单,我认为必须有一些方法可以自动执行此操作以及按钮,复选框和togglebuttons

  • 我可以为我的生活找不到自动添加的方法 通过修改启动文件夹中.dotm文件的userCustomization-Folder中的customUI.xml文件来下拉到QAT。

  • 实现该目标还有另一种可能性:Office 2010使用 一个“.officeUI”类型的文件,它存储每个用户元素 来自QAT(例如Word.officeUI)。在那里,添加以下xml-Element将确保,如果您已放置包含菜单的.dotm文件 Word的启动文件夹,它在加载时显示为下拉列表 QAT:

    <mso:control idQ="x1:myMenu" visible="true"/>

  • 不幸的是,热心地将这个xml-Element添加到userCustomization中的customUI.xml会导致.. poof ..在QAT中根本没有用户定义的额外图标(customUI.xml已损坏)。

此外,我昨天偶然发现的一个很好的资源是安迪波普的Visual Ribbon Editor。您可以轻松调整功能区和QAT。

答案 1 :(得分:2)

我知道我已经迟到了,但是我发现这篇帖子来自谷歌,并且认为你很感激答案。

可以通过Word的QAT创建一个菜单的外观,并带有一些VBA技巧。基本上,创建一个自定义命令栏,每个“Control”代表所需菜单上的一个插槽。如果您愿意,可以使用“.BeginGroup”创建分隔线以分隔项目。你的菜单至少可以降低几级,但出于复杂性的考虑,我不建议过深。

当您的命令栏完美时,创建一个只在运行时将命令栏显示为弹出窗口的宏:

    Application.CommandBars("My Command Bar").ShowPopup

将该宏的快捷方式添加到QAT。单击该快捷方式时,命令栏将显示为光标处的弹出菜单,这是所需的效果。

享受!