[ 更换 ]
热门城市
北京上海广州深圳成都杭州南京武汉天津西安重庆青岛沈阳长沙大连厦门无锡福州济南宁波昆明苏州郑州长春合肥南昌哈尔滨常州烟台南宁温州石家庄太原珠海南通扬州贵阳东莞徐州大庆佛山威海洛阳淮安呼和浩特镇江潍坊桂林中山临沂咸阳包头嘉兴惠州泉州三亚赣州九江金华泰安榆林许昌新乡舟山慈溪南阳聊城海口东营淄博漳州保定沧州丹东宜兴绍兴唐山湖州揭阳江阴营口衡阳郴州鄂尔多斯泰州义乌汕头宜昌大同鞍山湘潭盐城马鞍山襄樊长治日照常熟安庆吉林乌鲁木齐兰州秦皇岛肇庆西宁介休滨州台州廊坊邢台株洲德阳绵阳双流平顶山龙岩银川芜湖晋江连云港张家港锦州岳阳长沙县济宁邯郸江门齐齐哈尔昆山柳州绍兴县运城齐河衢州太仓张家口湛江眉山常德盘锦枣庄资阳宜宾赤峰余姚清远蚌埠宁德德州宝鸡牡丹江阜阳莆田诸暨黄石吉安延安拉萨海宁通辽黄山长乐安阳增城桐乡上虞辽阳遵义韶关泸州南平滁州温岭南充景德镇抚顺乌海荆门阳江曲靖邵阳宿迁荆州焦作丹阳丽水延吉茂名梅州渭南葫芦岛娄底滕州上饶富阳内江三明淮南孝感溧阳乐山临汾攀枝花阳泉长葛汉中四平六盘水安顺新余晋城自贡三门峡本溪防城港铁岭随州广安广元天水遂宁萍乡西双版纳绥化鹤壁湘西松原阜新酒泉张家界黔西南保山昭通河池来宾玉溪梧州鹰潭钦州云浮佳木斯克拉玛依呼伦贝尔贺州通化朝阳百色毕节贵港丽江安康德宏朔州伊犁文山楚雄嘉峪关凉山雅安西藏四川广东河北山西辽宁黑龙江江苏浙江安徽福建江西山东河南湖北湖南海南贵州云南陕西甘肃青海台湾内蒙古广西宁夏香港澳门
培训资讯网 - 为兴趣爱好者提供专业的职业培训资讯知识

VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏

功能 在这 在这里 收藏

本文介绍一个实用功能,严格来说认真研究,包含了不止一种实用功能。

鼠标右键作为快捷方式的一个入口,很多问题可以得到解决,同理,Excel应用中也有其特定的右键功能,当然了,这些功能都是程序内置的一些常用项目。

在工作当中,我们可能用到一些本职相关的一些功能,如何来添加到右键功能里来进行操作就显得很重要了。

VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏

下面根据VBA的一些代码,来实现这样的应用解决方案。

如下图所示,对话框是通过右键来弹出的,并不是Excel默认的功能项目,我们将学会如何实现这样的效果。

其中,设置了一些按钮,按钮有一些功能,可以实现添加数据、删除数据、设置单元格颜色等等操作。

如果愿意,可以对按钮事件进行编程,以实现自己想要的功能。

VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏

本示例右键以窗体形式给出,如下图所示:

VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏

这个窗体需要手动来制作,其过程就不在此介绍了。

重点看下,如何实现单击右键弹出它来,并且屏蔽掉默认右键。

代码:

Option Explicit
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
"自定义右键功能
    Cancel = True "默认右键不弹出
    Dim tx As Double, lx As Double
    tx = Application.Windows(1).Height - Windows(1).UsableHeight
    lx = Application.Windows(1).Width - Windows(1).UsableWidth
    Dim tr As Double, tc As Double
    tr = Target.Left + lx "定位窗体左边距
    tc = Target.Top + Target.Height "定位窗体上边距
    Dim fObj As Object
    Set fObj = UserForm1"返回窗体给变量fObj
    With fObj
        .Left = tr"左侧位置
        .Top = tc"顶部位置
        .Width = 200"窗体宽度
        .Height = 320"窗体高度
        .Caption = "功能项目"
        .CommandButton1.Caption = "当前文件格式代码:" & ThisWorkbook.FileFormat
        .CommandButton2.Caption = "当前位置坐标:" & ActiveCell.Top & "," & ActiveCell.Left
        .CommandButton3.Caption = "设置背景颜色"
        .CommandButton4.Caption = "清除颜色"
        .CommandButton5.Caption = "清除内容"
        .CommandButton6.Caption = "关 闭"
        .Show"显示窗体
    End With
    Set fObj = Nothing"清除变量
End Sub

VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏

如上代码所示,在Worksheet_BeforeRightClick事件中进行编辑,这个是固定的,也就是当工作表右键被单击时发生的事件,代码一定要写在这里。

此事件有两个参数传递,一个是Target,另一个是Cancel。前者是一个Range对象,后者是一个布尔变量。

当变量Cancel值为True时,将不弹出默认右键。

变量Target为鼠标按下时离鼠标最近的单元格Range对象。

通过这两个变量,可以实现一些相应的功能编码。

如本文中,取鼠标位置,定位窗体位置,设置单元格内容等,都用到了这两个变量。

代码中有注释,可以参考对比。

这样的一个示例对于制作快捷输入,还是十分有用的,特别是在一些常规性操作重复性比较大的情况下。

欢迎关注、收藏

---END---

相关内容

怎么学?如何干?西藏7市(地)委书记在西藏日报发表文章

启航新征程 开创新局面为全面建设社会主义现代化新拉萨努力奋斗自治区党委常委、拉萨市委书记 普布顿珠党的二十大大笔擘画坚持以中国式现代化全面推进中华民族伟大复兴的宏伟蓝图,区党委十届三次全会全面铺开建设美丽幸福西藏、共圆伟大复兴梦想的壮阔实践···

2023年全区智慧旅游专业人才培训班圆满结业 徐汇萨迦共同举办大美西藏首届口腔学习班 自觉抵制“一对一”“一对多”等学科类培训!哈尔滨中小学生暑期预警来了 哈尔滨市道里区企投局举办“招商大讲堂”专题培训 团黑龙江省委举办全省青年文明号青年岗位能手学习宣传贯彻党的二十大精神培训交流会 辽宁葫芦岛举办外贸政策培训会推动外贸保稳增量 山西运城:严查无证校外培训机构 查封9家警告2家 山西开展培训筑牢森林“防火墙” 校外培训机构治理工作取得进展 山西停办近1300所 山西综改区举办省技术创新中心申报培训 山西汾阳医院开展健康教育与控烟知识培训 山西省文物局年度田野考古技术培训班开班 最低每课时9元!全省学科类校外培训课时长和收费标准出台 山西天镇 阳光职业培训学校培养乡村“新农人”乡村振兴添动能 山西:建立全过程 全链条 无缝隙安全培训制度 山西:艺考培训机构纳入全国监管平台管理 太平财险阳泉中支开展消防安全教育和有限空间作业培训 山西省数字化转型贯标试点工作宣贯培训会在太原举行 山西马兰花创业培训讲师大赛收官 太原市获多个奖项