VBA编程,如何自定义鼠标右键功能,源代码在这里,马上收藏
本文介绍一个实用功能,严格来说认真研究,包含了不止一种实用功能。
鼠标右键作为快捷方式的一个入口,很多问题可以得到解决,同理,Excel应用中也有其特定的右键功能,当然了,这些功能都是程序内置的一些常用项目。
在工作当中,我们可能用到一些本职相关的一些功能,如何来添加到右键功能里来进行操作就显得很重要了。
下面根据VBA的一些代码,来实现这样的应用解决方案。
如下图所示,对话框是通过右键来弹出的,并不是Excel默认的功能项目,我们将学会如何实现这样的效果。
其中,设置了一些按钮,按钮有一些功能,可以实现添加数据、删除数据、设置单元格颜色等等操作。
如果愿意,可以对按钮事件进行编程,以实现自己想要的功能。
本示例右键以窗体形式给出,如下图所示:
这个窗体需要手动来制作,其过程就不在此介绍了。
重点看下,如何实现单击右键弹出它来,并且屏蔽掉默认右键。
代码:
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
如上代码所示,在Worksheet_BeforeRightClick事件中进行编辑,这个是固定的,也就是当工作表右键被单击时发生的事件,代码一定要写在这里。
此事件有两个参数传递,一个是Target,另一个是Cancel。前者是一个Range对象,后者是一个布尔变量。
当变量Cancel值为True时,将不弹出默认右键。
变量Target为鼠标按下时离鼠标最近的单元格Range对象。
通过这两个变量,可以实现一些相应的功能编码。
如本文中,取鼠标位置,定位窗体位置,设置单元格内容等,都用到了这两个变量。
代码中有注释,可以参考对比。
这样的一个示例对于制作快捷输入,还是十分有用的,特别是在一些常规性操作重复性比较大的情况下。
欢迎关注、收藏
---END---
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-359.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
热门文章
- 8月15日|19.8M/S,Clash/Shadowrocket/V2ray/SSR免费节点订阅链接每天更新
- 8月20日|21.5M/S,V2ray/Clash/Shadowrocket/SSR免费节点订阅链接每天更新
- 8月16日|18.7M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 8月17日|20.2M/S,V2ray/Clash/SSR/Shadowrocket免费节点订阅链接每天更新
- 9月1日|21M/S,Shadowrocket/SSR/V2ray/Clash免费节点订阅链接每天更新
- 8月31日|20.3M/S,V2ray/Shadowrocket/SSR/Clash免费节点订阅链接每天更新
- 8月18日|21.3M/S,SSR/V2ray/Shadowrocket/Clash免费节点订阅链接每天更新
- 8月30日|22.8M/S,SSR/Clash/Shadowrocket/V2ray免费节点订阅链接每天更新
- 8月29日|22.2M/S,V2ray/Clash/SSR/Shadowrocket免费节点订阅链接每天更新
- 8月24日|19.3M/S,Shadowrocket/V2ray/Clash/SSR免费节点订阅链接每天更新
最新文章
- 9月13日|22.3M/S,Shadowrocket/V2ray/Clash/SSR免费节点订阅链接每天更新
- 9月12日|22.9M/S,Clash/V2ray/Shadowrocket/SSR免费节点订阅链接每天更新
- 9月11日|20.4M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 9月10日|21.9M/S,V2ray/SSR/Clash/Shadowrocket免费节点订阅链接每天更新
- 9月9日|22.9M/S,V2ray/SSR/Clash/Shadowrocket免费节点订阅链接每天更新
- 9月8日|21.7M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 9月7日|22.3M/S,SSR/Shadowrocket/V2ray/Clash免费节点订阅链接每天更新
- 9月6日|19.2M/S,V2ray/Shadowrocket/Clash/SSR免费节点订阅链接每天更新
- 9月5日|20.5M/S,SSR/Clash/Shadowrocket/V2ray免费节点订阅链接每天更新
- 9月4日|19.9M/S,Clash/SSR/V2ray/Shadowrocket免费节点订阅链接每天更新