ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: jiulongpo

[分享] 细品RibbonX(1-59) (转)

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 17:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:UI界面定制
本帖最后由 jiulongpo 于 2012-8-7 20:12 编辑

转自: http://www.excelperfect.com/index.php/2009/09/30/ribbonxstudy21/
细品RibbonX(21):toggleButton控件详解


切换按钮用于在两种状态之间选择,例如当按下某切换按钮时开启或关闭某功能。
1toggleButton元素必需的属性
切换按钮需要下表1所列的id属性之一。
表1:toggleButton元素必需的属性
属性
何时使用
id
当创建自已的切换按钮时
idMso
当使用现有的Microsoft切换按钮时
idQ
当在命名空间之间创建共享的切换按钮时

切换按钮也需要表2所列出的onAction回调。
表2:toggleButton元素必需的回调
动态属性
允许值
VBA回调签名
onAction
1至4096个字符
Sub OnAction(control As IRibbonControl,selectedId As String,selectedIndex As Integer)

2、带有回调签名的可选的静态属性和动态属性
使用切换按钮时,可以使用下表3列出的任一insert属性。
表3:toggleButton元素可选的insert属性
INSERT属性
允许值
默认值
何时使用
insertAfterMso
有效的Mso组
在组末尾插入
在Microsoft控件之后插入
insertBeforeMso
有效的Mso组
在组末尾插入
在Microsoft控件之前插入
insertAfterQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之后插入
insertBeforeQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之前插入

也可以提供下表4所列的任何或所有的属性。
表4:toggleButton元素可选的属性和回调
静态属性
动态属性
允许值
默认值
动态属性的VBA回调签名
description
getDescription
1至4096个字符
(none)
Sub GetDescription(control  As IRibbonControl,ByRef returnedVal)
enabled
getEnabled
true,false,1,0
true
Sub GetEnabled(control As                                              IRibbonControl,ByRef returnedVal)
image
getImage
1至4096个字符
(none)
Sub GetImage(control As                                              IRibbonControl,ByRef returnedVal)
imageMso
getImage
1至4096个字符
(none)
同上
keytip
getKeytip
1至3个字符
(none)
Sub GetKeytip(control As                                             IRibbonControl,ByRef returnedVal)
label
getLabel
1至4096个字符
(none)
Sub GetLabel(control As                                              IRibbonControl,ByRef returnedVal)
(none)
getPressed
true,false,1,0
(none)
Sub GetPressed(control As IRibbonControl,ByRef returnedVal)
screentip
getScreentip
1至4096个字符
(none)
Sub GetScreentip(control As IRibbonControl,ByRef returnedVal)
showImage
getShowImage
true,false,1,0
true
Sub GetShowImage(control As IRibbonControl,ByRef returnedVal)
showLabel
getShowLabel
true,false,1,0
true
Sub GetShowLabel(control As IRibbonControl,ByRef returnedVal)
size
getSize
normal,large
normal
Sub GetSize(control As IRibbonControl,ByRef returnedVal)
supertip
getSupertip
1至4096个字符
(none)
Sub GetSupertip(control As IRibbonControl,ByRef returnedVal)
tag
(none)
1至4096个字符
(none)
(none)
visible
getVisible
true,false,1,0
true
Sub GetVisible(control As IRibbonControl,ByRef returnedVal)

3toggleButton元素允许的子对象
toggleButton控件不支持任何子对象。
4toggleButton元素的父对象
在下列任何控件内都能放置toggleButton控件:
n         box
n         buttonGroup
n         dynamicMenu
n         group
n         menu
n         officeMenu
n         splitButton
5、使用内置的切换按钮控件
在功能区中使用了很多内置的切换按钮控件。下面的示例在自定义选项卡中添加四个内置的切换按钮。
(1)创建一个新的.xlsx文件,并将其保存为Excel Built In toggleButton Example.xlsx。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:
  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>

  2.     <ribbon startFromScratch=“false“>

  3.         <tabs>

  4.             <tab id=“rxtabCustom“

  5.                  label=“My Tools“

  6.                  insertBeforeMso=“TabHome“>

  7.                 <group id=“rxgrpFormats“

  8.                        label=“Formatting“>

  9.                     <toggleButton idMso=“Bold“/>

  10.                     <toggleButton idMso=“Italic“/>

  11.                     <toggleButton idMso=“Underline“/>

  12.                     <toggleButton idMso=“UnderlineDouble“/>

  13.                 </group>

  14.             </tab>

  15.         </tabs>

  16.     </ribbon>

  17. </customUI>

复制代码

(4)保存并关闭CustomUI Editor。在Excel中打开工作簿,如下图所示。

6、创建自定义切换按钮控件
下面的示例再次使用在细品RibbonX(18)中使用的预付费用计划示例,我们将添加自定义视图切换功能,这样允许用户显示或隐藏“Expense To”列,如下图所示。
在Excel中,单击“视图—自定义视图”,选择“添加”并命名为“cvw_Show”。该视图用于返回工作表的全视图,显示所有列。关闭“视图管理器”对话框。
接着,设置隐藏“Expense To”列的第二个视图。隐藏F列,重新打开“视图管理器”对话框,添加一个名为“cvw_Hide”的新的自定义视图。关闭“视图管理器”对话框。
现在,录制切换视图的宏。单击“录制宏”按钮,开始录制:
(1)单击“视图”选项卡。
(2)单击“自定义视图”。
(3)选择cvw_Hide视图并选择“显示”。
(4)再次单击“自定义视图”。
(5)选择cvw_Show视图并选择“显示”。
(6)停止录制。
转到VBE中,查看录制的代码:
    ActiveWorkbook.CustomViews(“cvw_Hide”).Show
    ActiveWorkbook.CustomViews(“cvw_Show”).Show
接下来,让我们设置功能区中所自定义的切换按钮。保存Excel文件,在CustomUI Editor中打开该文件,编写下列XML代码:
  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>

  2.     <ribbon startFromScratch=“false“>

  3.         <tabs>

  4.             <tab id=“DemoTab“

  5.                  label=“Demo“

  6.                  insertBeforeMso=“TabHome“>

  7.                 <group id=“DemoGroup“

  8.                        label=“Demo Group“>

  9.                     <button id=“rxbtnRollForward“

  10.                             label=“Roll Forward“

  11.                             imageMso=“CreateReportFromWizard“

  12.                             size=“large“

  13.                             onAction=“rxbtnRollForward_Click“/>

  14.                     <toggleButton id=“rxtglHideExpense“

  15.                                   label=“Hide Expenses“

  16.                                   imageMso=“FieldList“

  17.                                   size=“large“

  18.                                   onAction=“rxtglHideExpense_Click“/>

  19.                 </group>

  20.             </tab>

  21.         </tabs>

  22.     </ribbon>

  23. </customUI>

复制代码

生成回调签名并复制,保存并关闭文件。
在Excel中重新打开该文件,转到VBE中,粘贴回调签名代码。
下面,修改回调以满足需要,代码如下:
‘rxtglHideExpense onAction回调
Sub rxtglHideExpense_Click(control As IRibbonControl, pressed As Boolean)
    Select Case pressed
        Case True
            ActiveWorkbook.CustomViews(“cvw_Hide”).Show
        Case False
            ActiveWorkbook.CustomViews(“cvw_Show”).Show
    End Select
End Sub
好了!现在可以转到Excel界面中查看切换按钮的功能了。
然而,如果您隐藏了F列,保存并关闭工作簿,再打开该工作簿时,切换按钮并不会高亮选中,并且需要单击两次才能实现切换功能。此时,可以使用下列方式解决:
n         在Workbook_Open过程中将cvw_Show视图设置为活动的。
n         设置getPressed回调代码测试当工作簿打开时哪个视图为活动视图,然后将其状态返回到切换按钮。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 17:06 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:36 编辑

接 细品RibbonX(21):toggleButton控件详解

下面再举一个示例。
本示例使用一个切换按钮来切换分页显示。如下面的XML代码所示,在“视图”选项卡中自定义一个组并放置自定义的切换按钮:
<customUI onLoad=“rxIRibbonUI_onLoad“ xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=“false“>
        <tabs>
            <tab idMso=“TabView“>
                <group id=“rxgrpStyleInsp“
                       label=“Custom Options“
                       insertBeforeMso=“GroupZoom“>
                        <toggleButton id=“rxtglPageBreaks“
                               label=“Display PageBreaks“
                               getPressed=“rxtglPageBreaks_getPressed“
                               getImage=“rxtglPageBreaks_getImage“
                               onAction=“rxtglPageBreaks_click“/>
               </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
生成回调签名,并将其复制。关闭CustomUI Editor。
在Excel中打开该工作簿,转到VBE,粘贴回调签名到标准模块中,并输写代码:
Private ribbonUI As IRibbonUI

‘customUI.onLoad回调
Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
    Set ribbonUI = ribbon
End Sub

‘rxtglPageBreaks getPressed回调
Sub rxtglPageBreaks_getPressed(control As IRibbonControl, ByRef returnedVal)
    returnedVal = ActiveSheet.DisplayPageBreaks
End Sub

‘rxtglPageBreaks getImage回调
Sub rxtglPageBreaks_getImage(control As IRibbonControl, ByRef returnedVal)
    Select Case ActiveSheet.DisplayPageBreaks
        Case True
            returnedVal = “SignatureInsertMenu”
        Case False
            returnedVal = “DesignMode”
    End Select
End Sub

‘rxtglPageBreaks onAction回调
Sub rxtglPageBreaks_click(control As IRibbonControl, pressed As Boolean)
    ActiveSheet.DisplayPageBreaks = pressed
    ribbonUI.InvalidateControl “rxtglPicHold”
End Sub
保存该工作簿并关闭。重新打开该工作簿,此时可以测试该切换按钮的功能了。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 17:08 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:37 编辑

转自: http://www.excelperfect.com/index.php/2009/10/12/ribbonxstudy22/
细品RibbonX(22):item元素详解

item元素用于在gallery、dropDown、comboBox内创建静态项目,是这些控件必须的一部分。
1item元素必需的属性
每个item需要下表1所列的id属性之一。
表1:item元素必需的属性
属性

何时使用

id

使用该属性创建自已的项目

item元素仅有一个属性。正如前文所述,item必须与其它控件一起使用,因此所有其它的属性取决于其它元素。
2、带有回调签名的可选的静态属性和动态属性
每个item元素可以使用下表2列出的任一或所有的属性。
表2:item元素可选的属性
静态属性

动态属性

允许值

默认值

动态属性的VBA回调签名

image

(none)

1至1024个字符

(none)

(none)

imageMso

(none)

1至1024个字符

(none)

(none)

label

(none)

1至1024个字符

(none)

(none)

screentip

(none)

1至1024个字符

(none)

(none)

supertip

(none)

1至1024个字符

(none)

(none)

注意到item元素所有的属性都是静态的,这意味着可以直接提供静态的列表项而无须编写VBA代码。当然,可以通过其父控件的回调签名来动态添加项目。但两者是相互排斥的,即指定静态项目后,不能同时指定动态项目。
3item元素允许的子对象
item元素不支持任何子对象,因此没有任何嵌入的控件。
4item元素的父对象
在下列任何控件内都能使用item:
n         comboBox
n         dropDown
n         gallery
5、使用内置的控件
没有机会利用内置的item元素,因为Microsoft没有公开它们为我们所使用。如果希望使用某控件内的一些项目,则可以包含其完整的父元素。
6、创建自定义控件
您可以试着在组合框或下拉列表中创建自定义item元素,接下来的两篇将详细介绍这方面的内容。


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:35 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:38 编辑

转自: http://www.excelperfect.com/index.php/2009/10/15/ribbonxstudy23/
细品RibbonX(23):comboBox控件详解


组合框控件基于指定的记录源显示数据,它是编辑框和下拉控件的组合。该控件最明显的特征之一是:不仅能够从列表中选取项目,而且能够在其中输入项目。
comboBox控件常用于下列情形:
n         列表非常长,希望用户在输入一些关键词后能够迅速跳到合适的地方。(例如fonts控件)
n         希望呈现给用户一个预定义列表,同时也希望能够在列表中添加项目。
可以使用静态列表或动态创建列表来填充组合框。
1comboBox元素必需的属性
组合框控件需要下表1所列的id属性之一。
表1:comboBox元素必需的属性
属性

何时使用

id

当创建自已的组合框时

idMso

当使用现有的Microsoft组合框时

idQ

当在命名空间之间创建共享的组合框时

2、带有回调签名的可选的静态属性和动态属性
组合框控件可以使用下表2列出的任一insert属性。
表2:comboBox元素可选的insert属性
INSERT属性

允许值

默认值

何时使用

insertAfterMso

有效的Mso组

在组末尾插入

在Microsoft控件之后插入

insertBeforeMso

有效的Mso组

在组末尾插入

在Microsoft控件之前插入

insertAfterQ

有效的组idQ

在组末尾插入

在共享的命名空间控件之后插入

insertBeforeQ

有效的组idQ

在组末尾插入

在共享的命名空间控件之前插入

也可以为组合框设置下表3所列的任何或所有的属性或回调。
表3:comboBox元素可选的属性和回调
静态属性

动态属性

允许值

默认值

动态属性的VBA回调签名

(none)

onChange

1至4096个字符

(none)

Sub OnChange(control
  As IRibbonControl,
text As String)

enabled

getEnabled

true,false,1,0

true

Sub GetEnabled(control As
IRibbonControl,
ByRef returnedVal)

image

getImage

1至1024个字符

(none)

Sub GetImage(control As
IRibbonControl,
ByRef returnedVal)

imageMso

getImage

1至1024个字符

(none)

同上

(none)

getItemCount

1至1024个字符

(none)

Sub GetItemCount(control As
IRibbonControl,
ByRef returnedVal)

(none)

getItemID

1至1024个字符

(none)

Sub GetItemID(control As
IRibbonControl,
index As Integer,
ByRef id)

(none)

getItemImage

独立的文本字符串

(none)

Sub GetItemImage(control As
IRibbonControl,
index As Integer,
ByRef returnedVal)

(none)

getItemLabel

1至1024个字符

(none)

Sub GetItemLabel(control As IRibbonControl,
index As Integer,
ByRef returnedVal)

(none)

getItemScreentip

1至1024个字符

(none)

Sub GetItemScreenTip(control As IRibbonControl,
index As Integer,
ByRef returnedVal)

(none)

getItemSupertip

1至1024个字符

(none)

Sub GetItemSuperTip(control As IRibbonControl,
index As Integer,
ByRef returnedVal)

keytip

getKeytip

1至3个字符

(none)

Sub GetKeytip(control As                                             IRibbonControl,
ByRef returnedVal)

label

getLabel

1至1024个字符

(none)

Sub GetLabel(control As
IRibbonControl,
ByRef returnedVal)

maxLength

(none)

1至1024个字符

1024

(none)

screentip

getScreentip

1至1024个字符

(none)

Sub GetScreentip(control As IRibbonControl,
ByRef returnedVal)

showImage

getShowImage

true,false,1,0

true

Sub GetShowImage(control As IRibbonControl,
ByRef returnedVal)

showItemAttribute

(none)

true,false,1,0

true

(none)

showItemImage

(none)

true,false,1,0

true

(none)

showLabel

getShowLabel

true,false

true

Sub GetShowLabel(control As
IRibbonControl,
ByRef returnedVal)

sizeString

(none)

1至1024个字符

12

(none)

supertip

getSupertip

1至1024个字符

(none)

Sub GetSupertip(control
As IRibbonControl,
ByRef returnedVal)

tag

(none)

1至1024个字符

(none)

(none)

(none)

getText

1至4096个字符

(none)

Sub GetText(control As
IRibbonControl,
ByRef returnedVal)

visible

getVisible

true,false,1,0

true

Sub GetVisible(control
As
IRibbonControl,
ByRef returnedVal)

3comboBox元素允许的子对象
comboBox元素可以使用的唯一的子对象是item元素。
4comboBox元素的父对象
在下列任何控件内都能放置comboBox控件:
n         box
n         group
5、使用内置的组合框控件
在Excel的所有控件中,最著名的可能是字体组合框。如果创建组合最常使用的控件的自定义选项卡,那么将会添加字体组合框控件。
(1)创建一个新的.xlsx文件,并将其保存为Excel Built In comboBox 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=“rxgrpDemo“
                        label=“Demo“>
                        <comboBox idMso=“Font“/>
                        <comboBox idMso=“FontSize“/>
                 </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
下图为上述代码创建的组。



TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:37 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:38 编辑

接 细品RibbonX(23):comboBox控件详解

6、创建自定义组合框控件
本例中,假设您已经隐藏了完整的用户界面。此外,也试图使应用程序看起来不太像Excel,因为隐藏了所有的工作表标签。然而,您仍然想用户能够在三个工作表之间移动,因此需要提供一些手段来实现这项操作。在许多情形下,组合框控件是能够用于这类导航的理想的控件:列出应用程序中所有的“页面”,允许用户输入其希望跳转到的页面。
(1)新建一个工作簿,以.xlsm为扩展名保存后关闭。
(2)在CustomUI Editor中打开该工作簿,并输入下列XML代码:
<customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=“false“>
        <tabs>
            <tab id=“rxtabDemo“
                 label=“Navigation“
                 insertBeforeMso=“TabHome“>
                 <group id=“rxgrpNavigate“
                        label=“Navigate To“>
                        <comboBox id=“rxcboSelectSheet“
                                  label=“Activate:“
                                  onChange=“rxcboSelectSheet_Click“>
                                  <item id=“rxitemcboSelectSheet1“
                                        label=“Sheet1“/>
                                  <item id=“rxitemcboSelectSheet2“
                                        label=“Sheet2“/>
                                  <item id=“rxitemcboSelectSheet3“
                                        label=“Sheet3“/>
                       </comboBox>
               </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
注意到该组合框利用onChange回调来产生当选择项目时的行为。此外,该组合框包含三个项目:Sheet1、Sheet2、Sheet3。这些项目是静态的并且不能从文件中修改,用户也不能添加其它项目,这确保了用户仅能在这三个工作表之间导航。
生成回调签名,并复制代码后关闭CustomUI Editor。
在Excel中打开该工作簿,打开VBE并将代码粘贴到一个标准模块中。下面编辑该回调以响应希望的操作。这时,可以通过考虑事件的顺序来解决如何实现:
(1)用户从工作表列表中选择一个项目。
(2)触发回调。
(3)将组合框中所选择的值(即工作表的名字)传递到程序。
(4)激活工作表。
然而,如果用户在组合框中输入值,会发生什么呢?要处理这些可能发生的事,应该编辑回调签名如下:
‘rxcboSelectSheet onChange回调
Sub rxcboSelectSheet_Click(control As IRibbonControl, text As String)
    On Error Resume Next
    Worksheets(text).Activate
    If Err.Number <> 0 Then
        MsgBox “对不起,不存在这个工作表!”
    End If
End Sub
第2行代码试图激活传递给回调的名称的工作表。从列表中选择的项目总是有效的名字,而由用户输入的文本可能与列表中的项目不匹配。在开始部分的On Error语句告诉代码即使发生错误也继续运行下一行代码。
如果Err属性不为零,那么一定是发生了错误,因此用户输入的值是无效的。此外,因为希望让用户知道其输入是不可接受的,所以包括了一个消息框。
现在,就可以测试了:可以从组合框中选择一个值(如下图所示),也可以输入一个值。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jiulongpo 于 2012-8-6 20:39 编辑

转自: http://www.excelperfect.com/index.php/2009/10/16/ribbonxstudy24/
细品RibbonX(24):dropDown控件详解


与组合框控件相似,dropDown控件提供用户一组预定义列表以供用户从中选择。此外,能够在设计时使用XML提供的静态列表,或者在运行时通过回调动态填充列表。
组合框和下拉控件最大的不同在于组合框可以接受用户输入,而下拉控件则不行,用户只能从预定义的列表并且仅能从该列表中选择项目。
下面是一些使用下拉控件的理由:
n         不希望用户输入它们自已的信息。
n         列表不长,因此不涉及到使用“自动完成”功能。
n         没兴趣编程回调来验证用户输入数据。
1dropDown元素必需的属性
dropDown控件需要下表1所列的id属性之一。
表1:dorpDown元素必需的属性
属性
何时使用
id
当创建自已的下拉列表时
idMso
当使用现有的Microsoft下拉列表时
idQ
当在命名空间之间创建共享的下拉列表时

2、带有回调签名的可选的静态属性和动态属性
dropDown元素可以使用下表2列出的任一insert属性。
表2:dropDown元素可选的insert属性
INSERT属性
允许值
默认值
何时使用
insertAfterMso
有效的Mso组
在组末尾插入
在Microsoft控件之后插入
insertBeforeMso
有效的Mso组
在组末尾插入
在Microsoft控件之前插入
insertAfterQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之后插入
insertBeforeQ
有效的组idQ
在组末尾插入
在共享的命名空间控件之前插入

也可以为下拉列表设置下表3所列的任何或所有的属性或回调。
表3:dropDown元素可选的属性和回调
静态属性
动态属性
允许值
默认值
动态属性的VBA回调签名
enabled
getEnabled
true,false,1,0
true
Sub GetEnabled(control As IRibbonControl,ByRef returnedVal)
image
getImage
1至1024个字符
(none)
Sub GetImage(control As IRibbonControl,ByRef returnedVal)
imageMso
getImage
1至1024个字符
(none)
同上
(none)
getItemCount
1至1024个字符
(none)
Sub GetItemCount(control As IRibbonControl,ByRef returnedVal)
(none)
getItemID
独立的文本字符串
(none)
Sub GetItemID(control As IRibbonControl,index As Integer,ByRef id)
(none)
getItemImage
1至1024个字符
(none)
Sub GetItemImage(control As IRibbonControl,index As Integer,ByRef returnedVal)
(none)
getItemLabel
1至1024个字符
(none)
Sub GetItemLabel(control As IRibbonControl,index As Integer,ByRef returnedVal)
(none)
getItemScreentip
1至1024个字符
(none)
Sub GetItemScreenTip(control As IRibbonControl,index As Integer,ByRef returnedVal)
(none)
getItemSupertip
1至1024个字符
(none)
Sub GetItemSuperTip(control As IRibbonControl,index As Integer,ByRef returnedVal)
keytip
getKeytip
1至3个字符
(none)
Sub GetKeytip(control As IRibbonControl,ByRef returnedVal)
label
getLabel
1至1024个字符
(none)
Sub GetLabel(control As IRibbonControl,ByRef returnedVal)
screentip
getScreentip
1至1024个字符
(none)
Sub GetScreentip(control As IRibbonControl,ByRef returnedVal)
(none)
getSelectedItemID
独立的文本字符串
(none)
Sub GetSelectedItemID(control As IRibbonControl,ByRef returnedVal)
(none)
getSelectedItemIndex
1至1024个字符
(none)
Sub GetSelectedItemIndex(control As IRibbonControl,ByRef returnedVal)
showImage
getShowImage
true,false,1,0
true
Sub GetShowImage(control As IRibbonControl,ByRef returnedVal)
showItemImage
(none)
true,false,1,0
true
(none)
ShowItemLabel
(none)
true,false,1,0
true
(none)
showLabel
getShowLabel
true,false,1,0
true
Sub GetShowLabel(control As IRibbonControl,ByRef returnedVal)
sizeString
(none)
1至1024个字符
12
(none)
supertip
getSupertip
1至1024个字符
(none)
Sub GetSupertip(control As IRibbonControl,ByRef returnedVal)
tag
(none)
1至1024个字符
(none)
(none)
visible
getVisible
true,false,1,0
true
Sub GetVisible(control As IRibbonControl,ByRef returnedVal)
(none)
onAction
1至1024个字符
(none)
Sub OnAction(control As IRibbonControl,selectedId As String,selectedIndex As Integer)

3dropDown元素允许的子对象
dropDown元素可以使用的唯一的子对象是item元素。
4dropDown元素的父对象
在下列任何控件内都能放置dropDown控件:
n         box
n         group
5、使用内置的下拉控件
下面引用Excel内置的边框样式控件。
(1)创建一个新的.xlsx文件,并将其保存为Excel Built In dropDown 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=“rxgrpDemo“
                        label=“Demo“>
                        <dropDown idMso=“BorderStyle“/>
                 </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
下图为上述代码创建的组。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:40 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 jiulongpo 于 2012-8-6 20:40 编辑

接 细品RibbonX(24):dropDown控件详解

6、创建自定义下拉控件
本示例相当有趣,因为前后使用了两个dropDown元素。与在介绍组合框控件示例时相似,第一个控件中列出了工作簿中的所有工作表。然而,在从工作簿中添加或移除工作表时,我们使用可用的回调来更新下拉列表,
第二个控件允许用户切换所选工作表的可见性:xlSheetVisible、xlSheetHidden和xlSheetVeryHidden。
(1)新建一个工作簿,以.xlsm为扩展名保存后关闭。
(2)在CustomUI Editor中打开该工作簿,并输入下列XML代码:
<customUI onLoad=“rxIRibbonUI_onLoad“ xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=“false“>
        <tabs>
            <tab id=“rxtabDemo“
                 label=“Navigation“
                 insertBeforeMso=“TabHome“>
                 <group id=“rxgrpNavigate“
                        label=“Navigate To“>
                        <dropDown id=“rxddSelectSheet“
                                  label=“Apply To:“
                                  visible=“true“
                                  onAction=“rxddSelectSheet_click“
                                  getItemID=“rxitemddSelectSheet_getItemId“
                                  getItemCount=“rxitemddSelectSheet_getItemCount“
                                  getItemLabel=“rxitemddSelectSheet_getItemLabel“/>
                       <dropDown id=“rxddSheetVisible“
                                 label=“Set To:“
                                 onAction=“rxddSheetVisible_click“>
                                 <item id=“rxitemddSheetVisible1“
                                       label=“Visible“/>
                                 <item id=“rxitemddSheetVisible2“
                                       label=“Hidden“/>
                                 <item id=“rxitemddSheetVisible3“
                                       label=“VeryHidden“/>
                      </dropDown>
               </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>
生成回调签名,并复制代码后关闭CustomUI Editor。
在Excel中打开该工作簿,打开VBE并将回调签名代码粘贴到一个标准模块中。注意到,少生成了一个回调签名:getItemID,需要补充。
首先处理onLoad回调。在代码开始处添加两个变量,一个包含RibbonUI对象,另一个存放所选的工作表名:
Public RibbonUI As IRibbonUI
Dim sSheetName As String
接着,设置onLoad回调确保RibbonUI对象在装载时被捕获:
‘customUI.onLoad回调
Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
    Set RibbonUI = ribbon
End Sub
下面的代码获取工作表数:
‘rxddSelectSheet getItemCount回调
Sub rxitemddSelectSheet_getItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = Worksheets.Count
End Sub
下一步,设置getItemLabel回调,返回下拉列表中每个项目的文本:
‘rxddSelectSheet getItemLabel回调
Sub rxitemddSelectSheet_getItemLabel(control As IRibbonControl, index As Integer, ByRef returnedVal)
    returnedVal = Worksheets(index + 1).Name
End Sub
注意到数组参数使用index+1,这是因为VBA默认的数组索引号基于0,而Excel默认的工作表索引是基于1。
接下来,确保为每个下拉项动态生成唯一的ID,回调代码如下:
Sub rxitemddSelectSheet_getItemID(control As IRibbonControl, index As Integer, ByRef id)
    id = “rxitemddSelectSheet” & index+1
End Sub
更新rxddSelectSheet_click过程如下:
‘rxddSelectSheet onAction回调
Sub rxddSelectSheet_click(control As IRibbonControl, id As String, index As Integer)
    On Error Resume Next
    Call rxitemddSelectSheet_getItemLabel(control, index, sSheetName)
    If Err.Number <> 0 Then
        MsgBox “Sorry,that worksheet does not exist!”
        RibbonUI.InvalidateControl “rxddSelectSheet”
    End If
End Sub
已经完成动态dropDown控件的设置后,再来为静态下拉列表设置唯一的回调:
‘rxddSheetVisible onAction回调
Sub rxddSheetVisible_click(control As IRibbonControl, id As String, index As Integer)
    ‘检查已选择的工作表
    On Error Resume Next
    sSheetName = Worksheets(sSheetName).Name
    If Err.Number <> 0 Then
        MsgBox “Sorry,but you need to select a valid sheet first!”
        Exit Sub
    End If
    ‘改变工作表的可见性
    Select Case id
        Case “rxitemddSheetVisible1″
            Worksheets(sSheetName).Visible = xlSheetVisible
        Case “rxitemddSheetVisible2″
            Worksheets(sSheetName).Visible = xlSheetHidden
        Case “rxitemddSheetVisible3″
            Worksheets(sSheetName).Visible = xlSheetVeryHidden
    End Select
    If Err.Number <> 0 Then
        MsgBox “Sorry,this is the only visible sheet.” & vbCrLf & “You cann’t hide the all!”
    End If
    On Error GoTo 0
End Sub
至此,全部代码已完成。可以测试了,如下图所示。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:42 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:40 编辑

转自: http://www.excelperfect.com/index.php/2009/10/17/ribbonxstudy25/
细品RibbonX(25):使用自定义图片和库


有时,您可能发现内置的图标库是不够的,可能想引入自已的图像(图标或图片)。下面介绍如何利用自定义图片的功能及如何使用库,用户界面中最酷的新功能之一。
1、自定义图片
(1)支持的图片格式
如果打算定制用户界面,那么也可能会考虑使用自已的图像来增添额外的感觉。然而,知道一些文件格式,以便于知道在特定的情形下应该使用那种类型。
一种用于自定义图片的好的格式是PNG格式。PNG文件允许全透明(其它可能的格式例如BMP、GIF和JPEG不支持),这意味着不会因为界面背景色的变化而导致自定义的图片变得与背景不匹配。然而,在某些情形下不允许使用PNG文件。例如,如果需要使用VBA的LoadPicture函数实时装载图像,就不能够使用PNG格式。因此,需要寻找一种替代的方法:或者不同的格式或者不同的方法来装载图像。
下表1显示了能够在自定义用户界面中使用的一些文件格式。
表1:用于自定义UI的一些可能的图片格式
图片扩展名

格式

PNG

如果计划附加图片到工程中,那么Portable Network Graphics是一种优秀的用于自定义UI的格式。不能够在LoadPicture函数中使用这种文件格式。

BMP

指位图图片格式。可以使用LoadPicture函数装载这种格式的图片。

ICO

指图标格式。

WMF

指Windows图元文件,可以使用LoadPicture函数装载这种格式的图片。

JPG、JPEG

JPEG(Joint Photographic Experts Group)格式提供较低品质的图像。

GIF

Graphic Interchange Format,与JPEG一样,提供较低品质的图像。

如果用户界面使用自定义图片,那么应该选择PNG图片格式。PNG格式是提供完全支持透明度的唯一格式,并且PNG图片是高可压缩的而不会丢失质量。相反,因为其低的图像质量,通常不推荐JPG和GIF格式。
(2)适合的图片尺寸和比例
尺寸和比例对在用户界面中显示清楚且明晰的图片是重要的。作为一条规则,图形应该是具有96dpi的16×16和32×32的尺寸。
(3)图像编辑资源
Paint.NET软件提供了一个极好的图像编辑器,支持JPEG、PNG和BMP图像,有很强大的功能。您可以在下面的站点中下载:
http://www.getpaint.net/index2.html
2、在工程中添加自定义图片
(1)使用CustomUI Editor
要添加自定义图像,必须使用该控件的image属性。假设希望对按钮添加自定义图像,其XML代码如下:
    <button id=“rxbtn“
        label=“Custom Button“
        image=“test_img“
        size=“large“/>
注意到,图像的名字是test_img,并且没有指定文件扩展名。在XML压缩组里,相关联的文件指向该图像的正确位置。在本例中,如果查看相关联的XML文件(CustomUI.xml.rels),那么会发现下列代码段:
<Relationships xmlns=http://schemas.openxmlformats.org/package/2006/relationships>
<Relationships Type=http://schemas.openxmlformats.org/officeDocument/2006/relationships/image Target=”images/test_img.bmp” Id=”test_img” />
</Relationships>
相关的文件及其XML代码由CustomUI Editor自动生成。接下来,装载图像。
要使用CustomUI Editor来装载自定义图像,按照下列步骤:
(1)使用CustomUI Editor打开文档。
(2)添加自定义用户界面的XML代码。无论希望在哪里添加图像,都使用image属性并指定文件名,例如image=”test_img”。不需要担心文件扩展名。
(3)单击CustomUI Editor工具栏中的“Insert Icon”按钮。
(4)浏览包含图像的文件夹,打开该图像文件。
下图显示通过CustomUI Editor添加test_img文件,注意CustomUI Editor现在有一个额外的列列出了附加到工程中的所有图像。

这是装载自定义图片到UI中的一种非常容易的方法,但也可能是非常费时的,特别是要装载大量图片时。另一种方法是在运行时装载图片。
(2)在运行时装载自定义图片
如果需要在运行时切换图像,例如在运行时作出变化,那么需要使用该控件的getImage属性装载图像。
然而,这也带给我们另一个问题。此时,通常通过VBA的LoadPicture函数装载图像的方法。然而,这个函数不能处理PNG文件,而这种格式是功能区最好的图片格式。
下面的示例装载普通的BMP图片到切换按钮里。注意,用于装载位图文件的方法也能够用于图标文件和Windows图元文件,例如FileName.ico、FileName.wmf,等等。
       <toggleButton
        id=“rxtgl“
        getImage=“rxtgl_getImage“
        getLabel=“rxtgl_getLabel“
        size=“large“
        onAction=“rxtgl_Click“ />
使用getImage属性定义处理图片装载的回调。本例中,回调被命名为rxtgl_getImage并有下列签名:
Sub rxtgl_getImage(control as IRibbonControl, ByRef returnedVal)
因为本示例使用切换按钮,所以需要追踪切换状态,即按钮切换与否?这里使用全局的布尔变量来追踪状态。同时,需要onLoad事件来使该控件无效,确保根据切换按钮的单击装载图像。
在标准模块中输入下面的VBA代码:
Dim grxIRibbonUI        As IRibbonUI
Dim gblnPressed         As Boolean

Sub rxIRibbonUI_onLoad(ribbon As IRibbonUI)
    Set grxIRibbonUI = ribbon
End Sub

Sub rxtgl_getImage(control As IRibbonControl, ByRef returnedVal)
    Set returnedVal = LoadPicture(ThisWorkbook.Path & “\mex.bmp”)
    If gblnPressed Then Set returnedVal = LoadPicture(ThisWorkbook.Path & “\usa.bmp”)
End Sub

Sub rxtgl_Click(control As IRibbonControl, pressed As Boolean)
    gblnPressed = pressed
    grxIRibbonUI.InvalidateControl (“rxtgl”)
End Sub

Sub rxtgl_getLabel(control As IRibbonControl, ByRef returnedVal)
    returnedVal = “Mexico Rocks!”
    If gblnPressed Then returnedVal = “The US Rocks!”
End Sub
下图显示了自定义的切换按钮。
3、使用GDI+装载PNG文件
下面介绍如何使用GDI+(Graphics Device Interface Plus)APIs装载PNG文件。
GDI+是Windows核心子系统之一,当需要发送这些对象到诸如显示器和/或打印机等设备时用作表现图形对象的接口。GDI+处理不同绘图对象的渲染,这里我们使用它来渲染PNG对象以便使其能被装载到UI。这需要一些其它的技术,即使用Windows APIs来实现,下面是代码模块,可以直接导入VBA工程中使用:
basGDIPlus.bas
该模块中包含了一个名为LoadImage的函数,可用来直接装载PNG文件。因此,在上例中,如果想使用LoadImage函数代替LoadPicture函数来装载PNG文件,那么需要将其与getImage属性相关的代码中修改为LoadImage函数:
Sub rxtgl_getImage(control As IRibbonControl, ByRef returnedVal)
    Set returnedVal = LoadImage(ThisWorkbook.Path & “\mex.png”)
    If gblnPressed Then Set returnedVal = LoadImage(ThisWorkbook.Path & “\usa.png”)
End Sub


TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:44 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-6 20:41 编辑

转自: http://www.excelperfect.com/index.php/2009/10/20/ribbonxstudy26/
细品RibbonX(26):库(Gallery)控件详解



下面介绍如何使用库,Office 2007用户界面中最酷的新功能之一。
库被设计作为图形化显示用户选项的一种方式,例如样式库,能够通过查看该样式图形化的呈现使用户选择一种样式。可以使用库来组织照片、访问样式、或者存储调色板。在需要并提供可视效果的定制中,库是完美的控件。
此外,在库的底部也可以添加按钮。
库的XML标记如下:
<gallery>
    <!—放置XML代码>
</gallery>
库由静态的、动态的和可选的子属性组成,需要下表1所示的静态属性。
表1:库的静态属性
静态属性
允许值
VBA回调签名
columns
1至1024
N/A
itemHeight
1至4096
Sub getItemHeight(control As IRibbonControl,ByRef height)
itemWidth
1至4096
Sub getItemWidth(control As IRibbonControl,ByRef width)
rows
1至1024
N/A
sizeString
1至1024个字符
N/A
showItemImage
true,false,1,0
N/A
showItemLabel
true,false,1,0
N/A

库也可以包含下表2所示的动态属性。
表2:库的动态属性
动态属性
允许值
VBA回调签名
getItemCount
0至1000
Sub GetItemCount(control As IRibbonControl,ByRef count)
getItemID

Sub GetItemID(control As IRibbonControl,index As Integer,ByRef id)
getItemImage

Sub GetItemImage(control As IRibbonControl,index As Integer,ByRef image)
getItemLabel
1024
Sub GetItemLabel(control As IRibbonControl,index As Integer,ByRef label)
getItemScreentip
1024
Sub GetItemScreenTip(control As IRibbonControl,index As Integer,ByRef screentip)
getItemSupertip
1024
Sub GetItemSuperTip(control As IRibbonControl,index As Integer,ByRef supertip)
getSelectedItemID
1至1024个字符
Sub GetSelectedItemID(control As IRibbonControl,ByRef index)
getSelectedItemIndex
1至1024
Sub GetSelectedItemIndex(control As IRibbonControl,ByRef index)
onAction

Sub OnAction(control As IRibbonControl,selectedId As String,selectedIndex As Integer)

库还能够接受下表3所列的一个或全部对象作为其子元素,也可以具有每个对象的多个实例。
对象
作用
button
在库中添加一个可单击的按钮
item
在库中添加一个项目。该项目可以图形化地呈现希望执行的操作,例如图表布局的图形化呈现

下面,介绍一个示例,创建下图所示的库。

(1)创建一个新的Excel工作簿,保存后关闭。
(2)在CustomUI Editor中打开该文件,输入下列XML代码:
<customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>
    <ribbon startFromScratch=“false“>
     <tabs>
      <tab
      id=“rxtab“
      insertBeforeMso=“TabHome“
      label=“My Custom Tab“>

      <group
       id=“rxgrp“
       label=“My Photo Gallery“>

       <!– Starts the definition of our gallery–>
       <gallery
         id=“rxgal“
         label=“My Photo Gallery“
         image=“img4“
              columns=“2“
         rows=“2“
         itemWidth=“200“
         itemHeight=“150“
         showItemLabel=“false“
              size=“large“>

       <!– Insert the photo gallery–>
       <!– Import the photos you want to use first–>
       <item id=“rxitem0“ label=“London 1“ image=“img0“/>
       <item id=“rxitem1“ label=“London 2“ image=“img1“ />
       <item id=“rxitem2“ label=“London 3“ image=“img2“ />
       <item id=“rxitem3“ label=“London 4“ image=“img3“ />
       <item id=“rxitem4“ label=“London 5“ image=“img4“ />
       <item id=“rxitem5“ label=“London 6“ image=“img5“ />

       <!– Insert a button at the end of the gallery–>
       <button id=“rxbtn“
         imageMso=“RefreshStatus“
              label=“Visit excelperfect…“
         onAction=“rxbtn_Click“/>      
          </gallery>

      </group>

      </tab>
     </tabs>
    </ribbon>
</customUI>
(3)在CustomUI Editor中装载名为img0至img5的图像。
(4)保存并关闭CustomUI Editor,然后重新打开该工作簿,即可看到上图所示的自定义库。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-7-27 18:46 | 显示全部楼层
本帖最后由 jiulongpo 于 2012-8-7 20:26 编辑

接 细品RibbonX(26):库(Gallery)控件详解


使用内置库控件
有时,可能想将开始、插入、页面布局选项卡中的库放置在自定义选项卡中以方便使用,而无须在选项卡之间来回移动。下面的例子将三个内置库控件集中放置在一个自定义选项卡中。XML代码为:
  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>

  2.   <ribbon startFromScratch=“false“>

  3.     <tabs>

  4.       <tab id=“rxtab“

  5.       insertBeforeMso=“TabHome“

  6.       label=“Galleries Tab“>

  7.         <group

  8.        id=“rxgrp“

  9.        label=“Gallery Group“>

  10.           <box id=“rxbox1“ boxStyle=“horizontal“>

  11.           <gallery idMso=“FontColorPicker“ label=“AAA“/>

  12.           <labelControl id=“rxlbl1“ label=“Font Color“/>      

  13.           </box>

  14.           <box id=“rxbox2“ boxStyle=“horizontal“>

  15.           <gallery idMso=“CellFillColorPicker“ />

  16.           <labelControl id=“rxlbl2“ label=“Cell Color“/>      

  17.           </box>

  18.           <box id=“rxbox3“ boxStyle=“horizontal“>

  19.           <gallery idMso=“ChartTypeColumnInsertGallery“ size=“normal“ />   

  20.           </box>

  21.         </group>

  22.       </tab>

  23.     </tabs>

  24.   </ribbon>

  25. </customUI>

复制代码

结果如下图所示。
在运行时创建图像库
如果使用XML代码装载图像的话,那么随着库中图像数量的增加,需要输入更多的XML代码。显然,这不仅浪费时间,而且使维护变得更复杂。
下面的示例演示如何在库中动态添加图像,以避免额外的输入。在代码中:
n         getImage:用于装载库控件的图片(不是真正的库里面的图片)。
n         getItemCount:用于返回库中的项目数。在VBA代码中使用常量来决定这个值,这样如果需要更多的图片项目,只需简单地修改其数值。
n         getItemImage:用于装载项目图像,也就是说,每一个显现在库中的图像。
注意,不会遍历每一项,相反,Ribbon将回调getItemImage属性直至遍历由getItemCount属性决定的所有项目。此时,返回代表每个项目的图像的索引值。接下来,使用这个索引来捕获并装载相应的图片。
定制Excel界面库控件的XML代码如下:
  1. <customUI xmlns=“http://schemas.microsoft.com/office/2006/01/customui“>

  2.     <ribbon startFromScratch=“false“>

  3.         <tabs>

  4.             <tab id=“rxtab“

  5.                  insertBeforeMso=“TabHome“

  6.                  label=“My Custom Tab“>

  7.                  

  8.                  <group id=“rxgrp“

  9.                         label=“My Photo Gallery“>



  10.                         <!– Starts the definition of our gallery –>

  11.                         <gallery id=“rxgal“

  12.                                  label=“My Photo Gallery“

  13.                                  columns=“2“

  14.                                  rows=“2“

  15.                                  itemWidth=“200“

  16.                                  itemHeight=“150“

  17.                                  getImage=“rxgal_getImage“

  18.                                  getItemCount=“rxgal_getItemCount“

  19.                                  getItemImage=“rxgal_getItemImage“

  20.                                  onAction=“rxgal_Click“

  21.                                  showItemLabel=“false“

  22.                                  size=“large“>

  23.    

  24.                        <!– Inserts a button at the bottom of the gallery –>

  25.                             <button id=“rxbtn“

  26.                                     imageMso=“RefreshStatus“

  27.                                     label=“Visit excelperfect …“

  28.                                     onAction=“rxbtn_Click“/>



  29.                         </gallery>

  30.                 </group>

  31.             </tab>

  32.         </tabs>

  33.     </ribbon>

  34. </customUI>
复制代码

在Excel VBE中的代码如下:
Public Const gcItemCount = 6
‘rxgal getImage回调
Sub rxgal_getImage(control As IRibbonControl, ByRef returnedVal)
    Set returnedVal = LoadPicture(ActiveWorkbook.Path & “\MUN.bmp”)
End Sub
‘rxgal getItemCount回调
Sub rxgal_getItemCount(control As IRibbonControl, ByRef returnedVal)
    returnedVal = gcItemCount
End Sub
‘rxgal getItemImage回调
Sub rxgal_getItemImage(control As IRibbonControl, index As Integer, ByRef returnedVal)
    Set returnedVal = LoadPicture(ActiveWorkbook.Path & “\img” & index & “.bmp”)
End Sub
‘rxgal onAction回调
Sub rxgal_Click(control As IRibbonControl, id As String, index As Integer)
    MsgBox “您单击的图像索引号为 ” & index
End Sub
‘rxbtn onAction回调
Sub rxbtn_Click(control As IRibbonControl)
    MsgBox “更多技术请访问:http://www.excelperfect.com”
End Sub
当然,如果BMP格式效果不好,可以使用上篇文章中介绍的LoadImage函数装载PNG格式。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 16:43 , Processed in 0.061376 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表