分享

OnKey,一键随心所欲控制你的程序!

 雨中鸟依然在飞 2019-05-30

我的目标:让中国的大学生走出校门的那一刻就已经具备这些Office技能,让职场人士能高效使用Office为其服务。支持鹏哥,也为自己加油!

前几天写过一篇文章:

《在Excel中禁用右键菜单你会吗?》

在Excel中利用工作表事件可以实现当点击右键时不弹出右键菜单,但是当我们按下弹出右键菜单的快捷键Shift+F10时,照样会弹出右键菜单,而且是可以使用的。

那怎么才能真正的禁用右键菜单呢?也就是说不仅要点击右键不会弹出右键菜单,而且当按下Shift+F10时也不会弹出右键菜单。

要想解决上述问题,我们先要学习一个知识点,如何在VBA中让指定按下键盘上某个键时能发生一个事件,这就是所谓的OnKey事件,即按下某个键会执行一个特定的过程。

案例:

实现效果:按下Shift+F10后弹出一个消息框,显示:你好,Shift+F10已被禁用

首先写一个过程:

Sub NoShiftF10() MsgBox '你好,Shift+F10已被禁用'End Sub

然后把这个过程的快捷键指定为Shift+F10:

Sub SetupNoShiftF10()    Application.OnKey '+{F10}', 'NoShiftF10'End Sub

这样,当运行完SetupNoShiftF10过程后,Application.OnKey '+{F10}', 'NoShiftF10'就把Shift+F10指定为触发程序NoShiftF10。

所以,当我们按下Shift+F10以后,就会自动运行NoShiftF10过程。

OnKey事件的基本语法:

Application.OnKey '某个键', '某个程序'

那怎么让快捷键恢复原来的功能呢?比如要让上面的Shift+F10恢复弹出快捷键的功能呢?

'重新启用Shift+F10快捷键Sub ResetShiftF10() Application.OnKey '+{F10}'End Sub

向右滑动可以查看完整代码

Application.OnKey '某个键'

OnKey方法的第二个参数不写,这样就会恢复这个键本来的作用。

具体键的书写代码如下:

单个键:

代码

按键

{BACKSPACE} or{BS}

Backspace

{BREAK}

Break

Caps Lock

{CAPSLOCK}

{CLEAR}

Clear

Delete 或 Del

{DELETE} 或 {DEL}

End

{END}

~(波形符)

Enter

Enter(数字小键盘)

{ENTER}

{ESCAPE} 或 {ESC}

Esc

{F1} 到 {F15}

F1 到 F15

{HELP}

Help

Home

{HOME}

{INSERT}

Ins

Num Lock

{NUMLOCK}

Page Down

{PGDN}

{PGUP}

Page Up

{RETURN}

Return

{SCROLLLOCK}

Scroll Lock

Tab

{TAB}

向上键

{UP}

{DOWN}

向下键

{RIGHT}

向右键

向左键

{LEFT}

组合键:

要组合的键

在键代码之前添加

Shift

+(加号)

Ctrl

^(插入符号)

Alt

%(百分号)

比如:上述案例中Shift+F10,表示为:+{F10}

本节的分享就到这里,鹏哥祝大家每天都有进步。

学习点VBA技术,从此高效工作!

从基础操作到VBA,

两杯咖啡的钱,

换取一份如此详细的Excel视频资料,

你还在犹豫?

欲购从速,联系微信号:527240310

非诚勿扰!

每天进步一点,每天提升一点!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多