在操作Excel时运行快捷键,我们常常会使用快捷键来方便地达到目的,例如使用经典的Ctrl+C键复制,再用Ctrl+V键粘贴。实际上,快捷键的背后就是实现相应功能的程序。在VBA程序代码中,我们可以自定义运行宏的快捷键,这就要使用Application对象的OnKey方法。
使用OnKey方法,可以将程序赋给单个键或键组合,通过按下赋给的键或键组合来运行该程序。同时,也可以使用这个方法来禁用组合键。
OnKey方法的语法为:
Application.OnKey(Key,Procedure)
说明:
下图1列出了OnKey方法中可以使用的按键代码:
图1
除了上述按键外运行快捷键,还可以指定Alt键、Ctrl键和Shift键与它们组合,这3个键的代表符号分别为:
下面的代码当按下Alt+F10组合键时执行指定的过程:
Application.OnKey”%{F10}”, “过程名”
下面的代码在按下Ctrl+Shift+Y组合键时执行指定的过程:
Application.OnKey “^+Y”,”过程名”
要使用%、^、+作为指定过程的快捷键,就要将这些字符放置在花括号中,例如下面的代码:
Application.OnKey “^{+}”,”过程名”
按下Ctrl++组合键执行指定的过程。
示例1:禁用已有的快捷键
使用OnKey方法能够禁用已有的快捷键。通过赋给一个空过程,下面的代码禁止用户使用Ctrl+c组合键进行复制操作。
Sub DisableCopyShortCut()
Application.OnKey “^c”, “”
End Sub
要恢复Ctrl+c组合键的复制功能,则运行下面的代码。
Sub ClearCopyShortCut()
Application.OnKey “^c”
End Sub
示例2:自定义快捷键运行特定的操作
下面是Excel 2007 VBAProgrammer’s Reference中的一个示例。当运行AssignDown过程后,我们在Excel中按向下箭头键时,活动单元格将从当前单元格向下移动10行,而不是通常的1行。
Sub AssignDown()
Application.OnKey “{Down}”, “DownTen”
End Sub
Sub DownTen()
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666
ActiveCell.Offset(10, 0).Select
End Sub
运行下面的程序恢复向下箭头键的正常功能。
Sub ClearDown()
Application.OnKey “{Down}”
End Sub
娜娜项目网每日更新创业和副业项目
网址:nanaxm.cn 点击前往娜娜项目网
站 长 微 信: nanadh666