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》,仅供学习研究。 |
|
来自: hercules028 > 《VBA》