分享

Excel之VBA常用功能应用篇:自定义鼠标右键功能

 每天学学Excel 2022-02-17

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

鼠标右键作为快捷方式的一个入口,很多问题可以得到解决,同理,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对象。

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

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

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

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多