我在Excel中创建了一个包含功能区的文档级自定义,我想为Excel创建一个涉及同名功能区的应用程序级自定义。我的问题是如何让两个色带结合起来?目前,它们具有相同的自定义ControlId。
答案 0 :(得分:0)
控件的idQ属性的存在是为了使多个加载项能够共享容器,例如自定义选项卡和组。
在以下VBA示例中,两个Excel加载项在加载项选项卡上共享相同的“Contoso”组;每个都添加一个按钮。关键是在标记中指定相同的唯一命名空间。然后,控件可以使用idQ引用此命名空间。
CustomUI for add-in 1
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C1" label="Contoso Button 1" size="large"
imageMso="FileSave" onAction="c_action1" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
用于加载项2的CustomUI
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"
xmlns:x="myNameSpace" >
<ribbon>
<tabs>
<tab idMso="TabAddIns">
<group idQ="x:Contoso" label="Contoso">
<button id="C2" label="Contoso Button 2" size="large"
imageMso="FileSave" onAction="c_action2" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
如果使用COM加载项自定义Fluent UI,则命名空间名称必须是COM加载项的ProgID,但行为在其他方面相同。使用共享加载项时,ProgID为AddInName.Connect。当您使用Microsoft Visual Studio 2005 Tools for 2007 Microsoft Office System(Visual Studio 2005 Tools for Office Second Edition)创建加载项时,ProgID是加载项的名称。
您可以在MSDN的以下系列文章中阅读有关Fluent UI(又名Ribbon UI)的更多信息: