在 Excel中,使用 Application 对象的 OnKey 方法能够实现当用户在 Excel 中按特定键或特定的组合键时运行指定的过程。我们可以使用 OnKey 方法来捕捉特定的键盘输入。
OnKey 方法语法
Application.OnKey (Key,[Procedure])
参数 Key 表示要按的键的字符串。可以指定任何一个与 Ctrl,Alt,或 Shift 组合的任何单个键,也可以指定这些键的任意组合。 每个键均可用一个或多个字符表示,例如,b
表示字符 b,{DELETE}
表示 Delete 键。
若要指定按相应键时未显示的字符, (例如:Enter 或 Tab) ,请使用下表中列出的代码。 表中的每个代码表示键盘上的一个键。
按键 | 代码 |
---|---|
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} |
还可以组合 Shift,Ctrl,Alt 指定键。 要指定与其他键组合使用的键,请使用下表。
要组合的键 | 在键代码之前添加 |
---|---|
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