本文介紹一個實用功能,嚴格來說認真研究,包含了不止一種實用功能。
鼠标右鍵作為快捷方式的一個入口,很多問題可以得到解決,同理,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---
,