在操作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

声明: 本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快删除处理!