ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

VBA常用技巧代码解析

    [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-18 09:01 | 显示全部楼层

第7部分 菜单和工具栏

本帖已被收录到知识树中,索引项:开发帮助和教程
技巧84         改变菜单按钮图标
       利用VBA可以改变系统菜单的默认图标,使之达到自定义按钮图标的效果,如下面的代码所示。
  1. #001  Sub myCbarCnt()
  2. #002      Dim myCbarCnt As CommandBarControl
  3. #003      With Sheet1.Shapes.AddShape(17, 1000, 1000, 30, 30)
  4. #004          .Fill.ForeColor.SchemeColor = 29
  5. #005          .CopyPicture
  6. #006          .Delete
  7. #007      End With
  8. #008      Set myCbarCnt = Application.CommandBars("Standard").Controls(1)
  9. #009      myCbarCnt.PasteFace
  10. #010      Set myCbarCnt = Nothing
  11. #011  End Sub
  12. #012  Sub DelmyCbarCnt()
  13. #013      Application.CommandBars("Standard").Controls(1).Reset
  14. #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过程结果如图所示。
Snap1.jpg

技巧84 改变菜单按钮图标.rar

7.14 KB, 下载次数: 1395

TA的精华主题

TA的得分主题

发表于 2009-3-18 11:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢楼主,版主无私奉献!!!!!!!!!!!!!!!!!!!!
慢慢学习.

TA的精华主题

TA的得分主题

发表于 2009-3-18 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
真是好帖,不好好学习,简直愧对EXCLEHOME!

TA的精华主题

TA的得分主题

发表于 2009-3-18 13:19 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-18 13:20 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-18 13:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-3-18 15:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢club.excelhome.net 感谢众位的辛勤努力!

TA的精华主题

TA的得分主题

发表于 2009-3-18 15:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼主谢谢楼主

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-3-18 16:44 | 显示全部楼层

第7部分 菜单和工具栏

技巧85         右键快捷菜单增加菜单项
       在Excel的右键快捷菜单中可以添加新的菜单项,如下面的代码所示。
  1. #001  Sub MyCmb()
  2. #002      Dim MyCmb As CommandBarButton
  3. #003      With Application.CommandBars("Cell")
  4. #004          .Reset
  5. #005          Set MyCmb = .Controls.Add(Type:=msoControlButton, _
  6. #006              ID:=2521, Before:=.Controls.Count, Temporary:=True)
  7. #007              MyCmb.BeginGroup = True
  8. #008          End With
  9. #009      Set MyCmb = Nothing
  10. #010  End Sub
复制代码
代码解析:
       MyCmb过程使用Add方法在Excel的右键快捷菜单中添加内置的“打印”菜单项。
       在使用Add方法添加菜单项时将Id参数设置为2521,添加的就是内置的“打印”菜单项。将Before属性设置成右键快捷菜单中最后一个控件的值,使“打印”菜单项添加到右键快捷菜单中最后一个控件之前。将Temporary参数设置成True,在关闭应用程序时从右键快捷菜单中删除“打印”菜单项。
       运行MyCmb过程,将在Excel右键快捷菜单中添加 “打印”菜单项,如图所示。
Snap2.jpg

技巧85 右键快捷菜单增加菜单项.rar

6.44 KB, 下载次数: 1169

TA的精华主题

TA的得分主题

发表于 2009-3-18 16:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
VBA又进步了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 01:53 , Processed in 0.034315 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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