首頁 > 科技

Excel vba 如何捕獲鍵盤輸入鍵,一個方法你就明白

2021-07-28 03:07:12

No.1

Excel vba 給出了鍵檢測的方法,也就是當我們操作鍵盤的時候,應用會返回剛剛鍵入的鍵盤程式碼,如此就可以判斷出,哪個鍵被按下了。

有什麼用呢?只不過是裝一下,如何快捷地使用計算機。

要知道很久以前的電腦是沒有滑鼠來操作的,完全用鍵盤進行,如果想要學電腦,記住鍵盤按鍵位置是一個考驗,更大的考驗就是各種組合鍵程式碼的功能。

像Linux操作一樣,不是容易操作的。

本節,就介紹一下,Excel是如何根據鍵盤輸入來進行自定義功能的。

這樣,我們會用到上圖的方法:Application.Onkey()

這個方法有兩個參數,一個是組合鍵定義,一個是要執行的過程名,都是字元串。

下圖為,組合鍵定義規則,沒有技巧,記住就可以,實在記不住就收藏。

示例:

Application.OnKey "{up}", "DoUP" '向上鍵

本示例給向上鍵定義了一個過程「DoUp」。

DoUp在模組中寫一個過程,隨便你想執行什麼功能。

下面示例做了四個過程,分別為上、下、左、右鍵。

也就是說,當我們在表中單擊上下左右鍵的時候,分別執行不同的過程。

執行效果如下圖所示,有點亂,執行過程功能為,每上下移動就新增一個活動單元格的Top值,左右移動新增活動單元格的Left值,順便更改一下背景顏色。

沒有實際意義,只是作為功能演示。

No.2

程式碼

在Worksheet_Activate事件中新增如下程式碼:

程式碼很清晰,也很簡單,分別給上、下、左、右鍵定義過程。

空格鍵也定義了一個清除過程。不能無限制新增,也需要刪除一些內容。

下圖為所有事件的過程,新建一個類,寫進去。

Sub DoUp()'向上鍵

With ActiveWindow.ActiveCell.Offset(-1, 0)

.Value = ActiveCell.Top & " Up"

ActiveWindow.ActiveCell.Offset(-1, 0).Select

End With

End Sub

Sub DoDown())'向下鍵

With ActiveWindow.ActiveCell.Offset(1, 0)

.Value = ActiveCell.Top & " Down"

ActiveWindow.ActiveCell.Offset(1, 0).Select

.Interior.Color = RGB(211, 21, 222)

.Font.Color = QBColor(9)

End With

End Sub

Sub DoLeft())'向左鍵

With ActiveWindow.ActiveCell.Offset(0, -1)

.Value = ActiveCell.Left & " Left"

ActiveWindow.ActiveCell.Offset(0, -1).Select

.Interior.Color = RGB(211, 201, 222)

.Font.Color = QBColor(5)

End With

End Sub

Sub DoRight())'向右鍵

With ActiveWindow.ActiveCell.Offset(0, 1)

.Value = ActiveCell.Left & " Right"

ActiveWindow.ActiveCell.Offset(0, 1).Select

.Interior.Color = QBColor(15)

End With

End Sub

Sub DoClear())'空格鍵

With ActiveWindow.ActiveCell

.Clear

.ClearFormats

End With

End Sub

當表被啟用的時候就給鍵盤上下左右進行功能設定,這樣做有一個問題,也就是說原來的上下左右被新賦值的過程取代了,每當我們按下這四個鍵,可能就不是原來定義的單元格選擇方式。

用如下方法來進行恢復:

Application.OnKey "{up}", "" '向上鍵

Application.OnKey "{Down}", "" '向下鍵

Application.OnKey "{Left}", "" '向上鍵

Application.OnKey "{Right}", "" '向下鍵

Application.OnKey "{BS}", "" '空格

也就是把過程去掉就可以恢復為Excel預設值。

這個功能,使用方法還是很簡單的,對應鍵盤程式碼進行設定就可以了。

歡迎關注、收藏

END


IT145.com E-mail:sddin#qq.com