本帖最后由 jiulongpo 于 2012-8-7 20:55 编辑
转自: http://www.excelperfect.com/index.php/2009/11/13/ribbonxstudy35/
细品RibbonX(35):dialogBoxLauncher元素详解
dialogBoxLauncher是一个小的、几乎看不见的、能够在组中使用的“小玩意”。在界面上是一个带有箭头的小正方形,位于组的右下角。 在大多数情形下,dialogBoxLauncher通过启动内置对话框,提供给用户更多的选项。当然,您也可以创建自已的用户窗体,提供给用户额外的选项或者帮助文档。 1、dialogBoxLauncher元素必需和可选的属性 dialogBoxLauncher元素没有任何必需的和可选的属性,其依赖于拥有属性的子对象。 2、dialogBoxLauncher元素允许的子对象 dialogBoxLauncher是一个容器,因此不仅接受子对象,而且需要子对象实现功能。dialogBoxLauncher必须具有且仅有一个按钮作为其子对象。实际上,按钮的作用是启动应用程序对话框。 3、dialogBoxLauncher元素的父对象 使用dialogBoxLauncher的唯一的地方是组。 4、dialogBoxLauncher元素使用示例 在UI中,有三种不同的方式实现dialogBoxLauncher: n 使用Microsoft已经使其可用的缺省的对话框启动器之一 n 创建自定义启动器来使用Microsoft的其它对话框之一 n 创建自定义启动器来启动自定义用户窗体 内置的对话框启动器 在自定义组中添加对话框启动器最简单的方式是使用Microsoft内置的对话框启动器按钮作为其子对象。 (1)创建一个新的.xlsx文件,并将其保存为Excel dialogBoxLauncher Example.xlsx。 (2)关闭该文件并在CustomUI Editor中打开。 (3)输入下列XML代码: - <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
- <ribbon
- startFromScratch=“false“>
- <tabs>
- <tab id=“rxtabDemo“
- label=“Demo“
- insertBeforeMso=“TabHome“>
- <group id=“rxgrpTest“
- label=“Test“>
- <box id=“rxboxFormat“>
- <comboBox idMso=“Font“ />
- <comboBox idMso=“FontSize“ />
- </box>
- <dialogBoxLauncher>
- <button idMso=“FormatCellsFontDialog“/>
- </dialogBoxLauncher>
- </group>
- </tab>
- </tabs>
- </ribbon>
- </customUI>
复制代码
注意,dialogLauncher仅仅是包含一个按钮的壳。使用dialogBoxLauncher的技巧是确保使用了正确的内置对话框按钮。 (4)保存后关闭CustomUI Editor。 (5)在Excel中重新打开该文件,单击“Test”组右下角的对话框启动器,结果如下图所示。
使用内置对话框的自定义对话框启动器 (1)创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example1.xlsm。 (2)关闭该文件并在CustomUI Editor中打开。 (3)输入下列XML代码: - <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
- <ribbon
- startFromScratch=“false“>
- <tabs>
- <tab id=“rxtabDemo“
- label=“Demo“
- insertBeforeMso=“TabHome“>
- <group id=“rxgrpTest“
- label=“Test“>
- <box id=“rxboxFormat“>
- <comboBox idMso=“Font“ />
- <comboBox idMso=“FontSize“ />
- </box>
- <dialogBoxLauncher>
- <button id=“rxbtnDialog“
- onAction=“rxbtnDialog_click“
- screentip=“Launch Dialog“/>
- </dialogBoxLauncher>
- </group>
- </tab>
- </tabs>
- </ribbon>
- </customUI>
复制代码
注意,没有与按钮相关的图像。即使您提供了按钮图像,它也会被对话框启动器图像覆盖。 (4)生成回调签名并复制,保存后关闭CustomUI Editor。 (5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。 (6)编写回调代码: ‘rxbtnDialog onAction回调 Sub rxbtnDialog_click(control As IRibbonControl) Application.Dialogs(xlDialogFormatFont).Show End Sub 编写代码较困难的是找到合适的对话框常量(本例中为xlDialogFormatFont),您可以使用对象浏览器或者智能感知功能来查找。 (7)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将出现“字体”对话框。 当然,您也可以修改回调代码中的对话框常量,调用其它对话框。 使用自定义用户窗体的自定义对话框 (1)创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example2.xlsm。 (2)关闭该文件并在CustomUI Editor中打开。 (3)输入下列XML代码(即沿用前一示例): - <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
- <ribbon
- startFromScratch=“false“>
- <tabs>
- <tab id=“rxtabDemo“
- label=“Demo“
- insertBeforeMso=“TabHome“>
- <group id=“rxgrpTest“
- label=“Test“>
- <box id=“rxboxFormat“>
- <comboBox idMso=“Font“ />
- <comboBox idMso=“FontSize“ />
- </box>
- <dialogBoxLauncher>
- <button id=“rxbtnDialog“
- onAction=“rxbtnDialog_click“
- screentip=“Launch Dialog“/>
- </dialogBoxLauncher>
- </group>
- </tab>
- </tabs>
- </ribbon>
- </customUI>
复制代码
(4)生成回调签名并复制,保存后关闭CustomUI Editor。 (5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。 (6)插入一个新的用户窗体,在其中添加标签和按钮。修改标签和按钮,如下图所示。 添加按钮单击事件: Private Sub CommandButton1_Click() Unload Me End Sub 表明当单击按钮后卸载用户窗体。 (7)编写回调代码,使用户单击对话框启动器时启动自定义的用户窗体: ‘rxbtnDialog onAction回调 Sub rxbtnDialog_click(control As IRibbonControl) UserForm1.Show End Sub (8)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将显示刚才自定义的用户窗体。
|