Excel自定义RibbonUI;为菜单添加部分标题
Excel Custom RibbonUI; Add Section Title for Menu
Im 运行ning 2016 独立 Excel(32 位版本)。我一直在构建自定义功能区,到目前为止一切顺利。该文档非常流畅且写得很好。但是,我找不到任何方法来包含菜单 'section titles',如下所示:
特别引用图片中的部分标题(即 'Cell size'、'Visibility' 等)。我见过其他 Add-Ins 模仿这个,除非它们是 COM Add-Ins。这是我参考的文档:https://msdn.microsoft.com/en-us/library/dd911038(v=office.12).aspx
它过时了吗?我已经尝试将 'Menu with Title' 添加到我的项目中,但这甚至不起作用。我也试过添加 <labelControl />
,当 labelControl 位于菜单内时功能区甚至不会加载。
此外,我的 Excel 版本甚至不会显示 <dialogBoxLauncher>
,所以我担心有些东西与我的 Excel 版本不兼容。我正在轻松地遵循文档,其他一切都运行良好。我什至在我使用的功能区中有一个 editBox
,并且不会 运行 进入任何 91 错误。所以我知道不是我。
任何人都可以使用提供的 API 复制它吗?我的功能区结构为 XML,所以我已经尽可能减少了错误的可能性,这是我的问题吗?是否应该 run-time 代码专门用于章节标题?
我的设置的简短片段
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group id="GroupTextTools" insertAfterMso="GroupFont" label="Text Tools">
<gallery id="textcase_gallery" label="Case Select" columns="1" size="large" imageMso="WordArtInsertDialogClassic" onAction="TextCase_SwitchCase" >
<item id="textcase_CapsButton" imageMso="TextAllCaps" label="Uppercase" screentip="Changes selected cells to all uppercase" />
<item id="textcase_ProperButton" label="Propercase" imageMso="ChangeCaseDialogClassic" screentip="Changes selected cells to proper case" />
<item id="textcase_LowerButton" label="Lowercase" imageMso="FontSizeDecrease" screentip="Changes selected cells to all small case" />
</gallery>
</group>
</tab>
<tab id="CustomTab" label="*removed*" insertAfterMso= "TabDeveloper">
<!--
GROUP A
-->
<group id="GroupFileOptions" label="File Options">
<button id="fileoptions_CloseButton" label="Close && Reopen" onAction="RunMacro" imageMso="SourceControlCheckIn" size="large" screentip="Saves Document, Closes && Reopens immediately"/>
<menu id="exportingmenu" label="Exporting" imageMso="FileCheckOut" size="large" screentip="Exporting Options">
<menu id="exportmenu_AsRange" label="As Range"> <!-- This is where I would like section Titles to be instead of another menu -->
<button id="exportmenu_range_CSVCButton" label="To CSV w/commas"/>
<button id="exportmenu_range_CSVSButton" label="To CSV w/spaces"/>
<button id="exportmenu_range_PDF" label="To PDF"/>
</menu>
<menu id="exportmenu_AsSheet" label="As Sheet"> <!--Goal is for this to be a section title, where I tried putting a <labelControl> -->
</menu>
</menu>
</group>
<!-- .... -->
</tab>
</tabs>
</ribbon>
</customUI>
经过一些尝试和错误,以及 David Zemens 不自觉地推动解决我的错误,我发现通过交叉引用我用他们的 Parent 元素尝试过的所有事情,唯一具有逻辑编译意义的是 <menuSeparator>
,它恰好具有 'title' 属性。因此,通过设置你会得到一个漂亮的部分标题,如下所示:
<menuSeparator id="someID" title="Test title"/>
我设法通过 getContent 回调将菜单标题仅放在 dynamicMenu 上,这意味着 xml 在 VBA 中定义为一段 xml 字符串,而不是在自定义用户界面 xml。
到目前为止,我在 customUI 界面上找到的最全面的文档位于 https://msdn.microsoft.com/en-us/library/dd911038(v=office.12).aspx, however the references are pointing only to 2007. This link contains a much more extensive list of controls and options with extra controls for Access as well http://www.accessribbon.de/en/?Access_-_Ribbons:Ribbon_XML___Controls
Im 运行ning 2016 独立 Excel(32 位版本)。我一直在构建自定义功能区,到目前为止一切顺利。该文档非常流畅且写得很好。但是,我找不到任何方法来包含菜单 'section titles',如下所示:
特别引用图片中的部分标题(即 'Cell size'、'Visibility' 等)。我见过其他 Add-Ins 模仿这个,除非它们是 COM Add-Ins。这是我参考的文档:https://msdn.microsoft.com/en-us/library/dd911038(v=office.12).aspx
它过时了吗?我已经尝试将 'Menu with Title' 添加到我的项目中,但这甚至不起作用。我也试过添加 <labelControl />
,当 labelControl 位于菜单内时功能区甚至不会加载。
此外,我的 Excel 版本甚至不会显示 <dialogBoxLauncher>
,所以我担心有些东西与我的 Excel 版本不兼容。我正在轻松地遵循文档,其他一切都运行良好。我什至在我使用的功能区中有一个 editBox
,并且不会 运行 进入任何 91 错误。所以我知道不是我。
任何人都可以使用提供的 API 复制它吗?我的功能区结构为 XML,所以我已经尽可能减少了错误的可能性,这是我的问题吗?是否应该 run-time 代码专门用于章节标题?
我的设置的简短片段
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnRibbonLoad">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group id="GroupTextTools" insertAfterMso="GroupFont" label="Text Tools">
<gallery id="textcase_gallery" label="Case Select" columns="1" size="large" imageMso="WordArtInsertDialogClassic" onAction="TextCase_SwitchCase" >
<item id="textcase_CapsButton" imageMso="TextAllCaps" label="Uppercase" screentip="Changes selected cells to all uppercase" />
<item id="textcase_ProperButton" label="Propercase" imageMso="ChangeCaseDialogClassic" screentip="Changes selected cells to proper case" />
<item id="textcase_LowerButton" label="Lowercase" imageMso="FontSizeDecrease" screentip="Changes selected cells to all small case" />
</gallery>
</group>
</tab>
<tab id="CustomTab" label="*removed*" insertAfterMso= "TabDeveloper">
<!--
GROUP A
-->
<group id="GroupFileOptions" label="File Options">
<button id="fileoptions_CloseButton" label="Close && Reopen" onAction="RunMacro" imageMso="SourceControlCheckIn" size="large" screentip="Saves Document, Closes && Reopens immediately"/>
<menu id="exportingmenu" label="Exporting" imageMso="FileCheckOut" size="large" screentip="Exporting Options">
<menu id="exportmenu_AsRange" label="As Range"> <!-- This is where I would like section Titles to be instead of another menu -->
<button id="exportmenu_range_CSVCButton" label="To CSV w/commas"/>
<button id="exportmenu_range_CSVSButton" label="To CSV w/spaces"/>
<button id="exportmenu_range_PDF" label="To PDF"/>
</menu>
<menu id="exportmenu_AsSheet" label="As Sheet"> <!--Goal is for this to be a section title, where I tried putting a <labelControl> -->
</menu>
</menu>
</group>
<!-- .... -->
</tab>
</tabs>
</ribbon>
</customUI>
经过一些尝试和错误,以及 David Zemens 不自觉地推动解决我的错误,我发现通过交叉引用我用他们的 Parent 元素尝试过的所有事情,唯一具有逻辑编译意义的是 <menuSeparator>
,它恰好具有 'title' 属性。因此,通过设置你会得到一个漂亮的部分标题,如下所示:
<menuSeparator id="someID" title="Test title"/>
我设法通过 getContent 回调将菜单标题仅放在 dynamicMenu 上,这意味着 xml 在 VBA 中定义为一段 xml 字符串,而不是在自定义用户界面 xml。 到目前为止,我在 customUI 界面上找到的最全面的文档位于 https://msdn.microsoft.com/en-us/library/dd911038(v=office.12).aspx, however the references are pointing only to 2007. This link contains a much more extensive list of controls and options with extra controls for Access as well http://www.accessribbon.de/en/?Access_-_Ribbons:Ribbon_XML___Controls