VBA专题10-14:使用VBA操控Excel界面之在功能区中添加自定义库控件

excelperfect

在自定义功能区时,我们可以插入图像到自定义库中,图像文件的类型可以是ico、bmp、png、jpg和tif。

要给自定义功能区选项卡添加库控件,执行下列步骤:

1. 创建一个新工作簿,并将其保存为启用宏的工作簿。

2. 关闭该工作簿,然后在Custom UI Editor中打开该工作簿。

3. 在Custom UI Editor中,选择Insert | Office 2007 Custom UI Part。

如果选择Office 2010 Custom UI Part,只需使用下列代码替换xmlns属性的命名空间:

<customUI xmlns='http://schemas.microsoft.com/office/2009/07/customui'>

4. 选择Insert | Icons,显示“Insert Custom Icons”对话框。

5. 查找并选择你想要的图像文件,并单击打开。

该图像文件的副本被插入,删除原始文件不影响插入的文件。

注意:在图像文件的文件名中避免使用空字符,否则不能正确地引用文件。

6. 如果需要,可右击在Custom UI Editor中插入的图像来改变其ID。如图1所示。

图1

7. 复制并粘贴下列XML代码:

在item元素中:

image属性的值是插入的图像的ID,如上面的图1所示。

id属性的值不必与插入的图像的ID相同,可以是任意独立的唯一文本字符串。

8. 单击工具栏中的Validation按钮检查是否XML代码有错误。

9. 单击工具栏中的Generate Callbacks按钮。

onAction回调属性生成一个回调过程,下面是该回调的签名:

'Callback for gallery1 onAction

Sub SelectedColor(control As IRibbonControl, id As String, index As Integer)

End Sub

复制该回调,稍后粘贴到工作簿的标准VBA模块中。

10. 保存并关闭文件。

11. 在Excel中打开该文件。

12. 按Alt+F11键激活VBE。

13. 插入一个标准的VBA模块,并粘贴在步骤9中复制的回调代码。

14. 在过程中添加一个MsgBox语句来测试控件。

'Callback for gallery1 onAction

Sub SelectedColor(control As IRibbonControl, id As String, index As Integer)

MsgBox '你选择的是' & id

End Sub

下图2展示了在Custom选项卡中出现在库控件中的项:

图2

代替上述第4步和第5步中手工插入图像,可以通过使用VBA过程使用相同的图像填充库。通过赋VBA过程的名称到loadImage回调属性来实现。下面列出了XML代码和VBA代码:

当打开该工作簿时,执行LoadImage过程。

VBA过程如下:

'Callback for customUI.loadImage

Sub LoadImage(imageID As String, ByRef returnedVal)

Set returnedVal = LoadPicture('I:\09. Excel\使用VBA操控Excel界面\04. 自定义功能区\13\' & imageID)

'msgbox ImageName

End Sub

该过程遍历XML代码中的每个item元素,查找图像的文件名并获取图像装载到库控件。可以包括MsgBox语句来看看该过程是如何遍历每个元素项的。

(注意,我试着使用png图像但没有成功。)

'Callback for gallery1 onAction

Sub SelectedColor(control As IRibbonControl, id As String, index As Integer)

MsgBox '你选择的是' & id

End Sub

说明:本专题系列大部分内容学习整理自《Dissect and Learn Excel VBA in 24 Hours:Changing workbook appearance》,仅供学习研究。

(0)

相关推荐