跳到主要内容

捕捉键盘输入

在 Excel中,使用 Application 对象的 OnKey 方法能够实现当用户在 Excel 中按特定键或特定的组合键时运行指定的过程。我们可以使用 OnKey 方法来捕捉特定的键盘输入。

OnKey 方法语法

Application.OnKey (Key,[Procedure])

参数 Key 表示要按的键的字符串。可以指定任何一个与 CtrlAlt,或 Shift 组合的任何单个键,也可以指定这些键的任意组合。 每个键均可用一个或多个字符表示,例如,b 表示字符 b,{DELETE} 表示 Delete 键。

若要指定按相应键时未显示的字符, (例如:EnterTab) ,请使用下表中列出的代码。 表中的每个代码表示键盘上的一个键。

非打印字符键盘代码
按键 代码
Backspace {BACKSPACE}{BS}
Break {BREAK}
Caps Lock {CAPSLOCK}
Clear {CLEAR}
Delete 或 Del {DELETE}{DEL}
End {END}
Enter(数字小键盘) {ENTER}
Enter ~(波形符)
Esc {ESCAPE}{ESC}
Help {HELP}
Home {HOME}
Ins {INSERT}
Num Lock {NUMLOCK}
Page Down {PGDN}
Page Up {PGUP}
Return {RETURN}
Scroll Lock {SCROLLLOCK}
Tab {TAB}
F1 到 F15 {F1}{F15}
向上键 {UP}
向下键 {DOWN}
向左键 {LEFT}
向右键 {RIGHT}

还可以组合 ShiftCtrlAlt 指定键。 要指定与其他键组合使用的键,请使用下表。

组合键代码
要组合的键 在键代码之前添加
Shift +(加号)
Ctrl ^(插入符号)
Alt %(百分号)

若为特定字符指定处理过程(如 +^%~ 等等),可将此字符用大括号 {} 括起来。例如要指定加号,可以用 {+} 表示。

参数 Procedure 表示要运行的过程名称的字符串,可选。 如果 Procedure 为空文本 (""),则按 Key 时不发生任何操作。利用此特性我们就可以禁止该按键。如果省略 Procedure 参数,则 Key 恢复为 Excel 中的正常结果,同时清除先前使用 OnKey 方法所做的特殊键击设置。

示例:禁止按 F11 键插入图表

Sub DisableF11()
   Application.OnKey "{F11}", ""
End Sub

示例:还原按 F11 键默认功能

Sub RestoreF11()
   Application.OnKey "{F11}"
End Sub

示例:捕捉 Ctrl+V 组合键

Sub CtrlV()
    Application.OnKey "^v", "CatchPaste"
End Sub
Sub CatchPaste()
    MsgBox "您按下了 Ctrl+V 组合键,但程序更改了此组合键功能。", vbInformation
End Sub

运行 CtrlV 过程后,程序便更改了 Ctrl+V 组合键的粘贴功能,此时用户在 Excel 中按下 Ctrl+V 组合键时将运行 CatchPaste 过程,显示一条消息告知用户,而不进行默认的粘贴操作。注意,在使用字符时均应使用小写字符。

若要还原该组合键的默认功能,忽略 Procedure 参数即可。

还原按 Ctrl+V 组合键的粘贴功能:

Sub RestoreCtrlV()
    Application.OnKey "^v"
End Sub

评论

您的电子邮件地址不会显示出来。*号为必填项。