ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E文精选 > Excel VBA > 细品RibbonX(35):dialogBoxLauncher元素详解

细品RibbonX(35):dialogBoxLauncher元素详解

作者:绿色风 分类: 时间:2022-08-17 浏览:163
楼主
biaotiger1
dialogBoxLauncher是一个小的、几乎看不见的、能够在组中使用的“小玩意”。在界面上是一个带有箭头的小正方形,位于组的右下角。
在大多数情形下,dialogBoxLauncher通过启动内置对话框,提供给用户更多的选项。当然,您也可以创建自已的用户窗体,提供给用户额外的选项或者帮助文档。
1dialogBoxLauncher元素必需和可选的属性
dialogBoxLauncher元素没有任何必需的和可选的属性,其依赖于拥有属性的子对象。
2dialogBoxLauncher元素允许的子对象
dialogBoxLauncher是一个容器,因此不仅接受子对象,而且需要子对象实现功能。dialogBoxLauncher必须具有且仅有一个按钮作为其子对象。实际上,按钮的作用是启动应用程序对话框。
3dialogBoxLauncher元素的父对象
使用dialogBoxLauncher的唯一的地方是组。
4dialogBoxLauncher元素使用示例
UI中,有三种不同的方式实现dialogBoxLauncher
n使用Microsoft已经使其可用的缺省的对话框启动器之一
n创建自定义启动器来使用Microsoft的其它对话框之一
n创建自定义启动器来启动自定义用户窗体
内置的对话框启动器
在自定义组中添加对话框启动器最简单的方式是使用Microsoft内置的对话框启动器按钮作为其子对象。
1)创建一个新的.xlsx文件,并将其保存为Excel dialogBoxLauncher Example.xlsx
2)关闭该文件并在CustomUI Editor中打开。
3)输入下列XML代码:

  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
  2. <ribbon
  3.     startFromScratch=“false“>
  4.     <tabs>
  5.        <tab id=“rxtabDemo“
  6.            label=“Demo“
  7.            insertBeforeMso=“TabHome“>
  8.            <group id=“rxgrpTest“
  9.               label=“Test“>
  10.               <box id=“rxboxFormat“>
  11.                   <comboBox idMso=“Font“ />
  12.                   <comboBox idMso=“FontSize“ />
  13.               </box>
  14.               <dialogBoxLauncher>
  15.                   <button idMso=“FormatCellsFontDialog“/>
  16.               </dialogBoxLauncher>
  17.            </group>
  18.        </tab>
  19.     </tabs>
  20. </ribbon>
  21. </customUI>

注意,dialogLauncher仅仅是包含一个按钮的壳。使用dialogBoxLauncher的技巧是确保使用了正确的内置对话框按钮。
4)保存后关闭CustomUI Editor
5)在Excel中重新打开该文件,单击“Test”组右下角的对话框启动器,结果如下图所示。

 


使用内置对话框的自定义对话框启动器
1创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example1.xlsm
2)关闭该文件并在CustomUI Editor中打开。
3)输入下列XML代码:

  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
  2. <ribbon
  3.     startFromScratch=“false“>
  4.     <tabs>
  5.        <tab id=“rxtabDemo“
  6.            label=“Demo“
  7.            insertBeforeMso=“TabHome“>
  8.            <group id=“rxgrpTest“
  9.               label=“Test“>
  10.               <box id=“rxboxFormat“>
  11.                   <comboBox idMso=“Font“ />
  12.                   <comboBox idMso=“FontSize“ />
  13.               </box>
  14.               <dialogBoxLauncher>
  15.                   <button id=“rxb**ialog“
  16.                                       onAction=“rxb**ialog_click“
  17.                                       screentip=“Launch Dialog“/>
  18.               </dialogBoxLauncher>
  19.            </group>
  20.        </tab>
  21.     </tabs>
  22. </ribbon>
  23. </customUI>

注意,没有与按钮相关的图像。即使您提供了按钮图像,它也会被对话框启动器图像覆盖。
4)生成回调签名并复制,保存后关闭CustomUI Editor
5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。
6)编写回调代码:
  1. ‘rxb**ialog onAction回调
  2. Sub rxb**ialog_click(control As IRibbonControl)
  3.      Application.Dialogs(xlDialogFormatFont).Show
  4. End Sub

编写代码较困难的是找到合适的对话框常量(本例中为xlDialogFormatFont),您可以使用对象浏览器或者智能感知功能来查找。
7)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将出现“字体”对话框。
当然,您也可以修改回调代码中的对话框常量,调用其它对话框。
使用自定义用户窗体的自定义对话框
1创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example2.xlsm
2)关闭该文件并在CustomUI Editor中打开。
3)输入下列XML代码(即沿用前一示例):

  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
  2. <ribbon
  3.     startFromScratch=“false“>
  4.     <tabs>
  5.        <tab id=“rxtabDemo“
  6.            label=“Demo“
  7.            insertBeforeMso=“TabHome“>
  8.            <group id=“rxgrpTest“
  9.               label=“Test“>
  10.               <box id=“rxboxFormat“>
  11.                   <comboBox idMso=“Font“ />
  12.                   <comboBox idMso=“FontSize“ />
  13.               </box>
  14.               <dialogBoxLauncher>
  15.                   <button id=“rxb**ialog“
  16.                                       onAction=“rxb**ialog_click“
  17.                                       screentip=“Launch Dialog“/>
  18.               </dialogBoxLauncher>
  19.            </group>
  20.        </tab>
  21.     </tabs>
  22. </ribbon>
  23. </customUI>

4)生成回调签名并复制,保存后关闭CustomUI Editor
5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。
6)插入一个新的用户窗体,在其中添加标签和按钮。修改标签和按钮,如下图所示。

 
添加按钮单击事件:
  1. Private Sub CommandButton1_Click()
  2.     Unload Me
  3. End Sub

表明当单击按钮后卸载用户窗体。
7)编写回调代码,使用户单击对话框启动器时启动自定义的用户窗体:
  1. ‘rxb**ialog onAction回调
  2. Sub rxb**ialog_click(control As IRibbonControl)
  3.      UserForm1.Show
  4. End Sub

8)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将显示刚才自定义的用户窗体。
2楼
水吉果果
学习******
3楼
水星钓鱼
感谢分享,学习
4楼
芐雨
来学习一下
5楼
海洋之星
标哥这是啥

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap