|
楼主 |
发表于 2009-3-18 09:01
|
显示全部楼层
第7部分 菜单和工具栏
技巧84 改变菜单按钮图标
利用VBA可以改变系统菜单的默认图标,使之达到自定义按钮图标的效果,如下面的代码所示。- #001 Sub myCbarCnt()
- #002 Dim myCbarCnt As CommandBarControl
- #003 With Sheet1.Shapes.AddShape(17, 1000, 1000, 30, 30)
- #004 .Fill.ForeColor.SchemeColor = 29
- #005 .CopyPicture
- #006 .Delete
- #007 End With
- #008 Set myCbarCnt = Application.CommandBars("Standard").Controls(1)
- #009 myCbarCnt.PasteFace
- #010 Set myCbarCnt = Nothing
- #011 End Sub
- #012 Sub DelmyCbarCnt()
- #013 Application.CommandBars("Standard").Controls(1).Reset
- #014 End Sub
复制代码 代码解析:
myCbarCnt过程改变系统菜单的“新建”按钮的图标。
第3行代码使用Shape对象的AddShape方法在工作表中新建一个自选图形。应用于Shape对象的AddShape方法请参阅技巧53 。
在本例中将新建图形的Left参数和Top参数设置为较大的数值使新建的自选图形不在当前窗口的可视区域内。
第4行代码设置新建自选图形的颜色。
第5行代码使用CopyPicture方法将新建自选图形作为图片复制到剪贴板。CopyPicture方法的语法如下:
expression.CopyPicture(Appearance, Format)
参数expression是必需的,一个有效的对象。
参数Appearance是可选的,指定图片的复制方式。
参数Format是可选的,图片的格式。
第6行代码使用Delete方法删除新建的自选图形。
第8行代码使用Set语句将系统菜单的“新建”按钮赋给变量myCbarCnt。
第9行代码PasteFace方法将新建的自选图形粘贴到“新建”按钮中。PasteFace方法将“剪贴板”的内容粘贴到指定命令栏按钮控件上,语法如下:
expression.PasteFace
参数expression是必需的,返回一个CommandBarButton对象。
DelmyCbarCnt过程使用Reset方法恢复“新建”按钮的默认图标。
运行myCbarCnt过程结果如图所示。
|
|