前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

VBA代码屏蔽组合键(vba 屏蔽提示)

qiguaw 2024-10-19 07:51:42 资源文章 58 ℃ 0 评论

【分享成果,随喜正能量】无能为力的事,当断;生命中无缘的人,当舍;心中烦欲执念,当离;放下执念,心才能回归安宁。

《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第32讲:VBA代码屏蔽组合键

第三十二讲 如何利用VBA代码屏蔽组合键的默认功能

朋友们好,今日讲VBA代码的第32讲,利用VBA代码的OnKey方法屏蔽键的默认功能。

1 OnKey方法

应用于Application 对象的OnKey方法指定特定键或特定的组合键运行的过程,语法如下:

expression.OnKey(Key, Procedure)

参数

a) expression是必需的,该表达式返回一个Application 对象。

b) Key是必需的,用于表示要按的键的字符串,具体请参阅VBA中的帮助。

c) Procedure是可选的,表示要运行的过程名称的字符串。

2 屏蔽组合键的代码及代码解读

下面我们讲一下在程序中如何屏蔽<Ctrl +C>组合键的VBA过程。我们知道在一般情况下当按下<Ctrl +C>组合键时候,会执行复制操作,如何能屏蔽这个动作呢?如果我们将Procedure参数指定为空文本(""),则按<Ctrl +C>组合键时不发生任何操作,达到屏蔽组合键的效果。我们看下面的代码:

Private Sub Workbook_Activate()

Application.OnKey "^{c}", "mynz_32"

End Sub

Sub mynz_32 ()

MsgBox "本工作表是禁止复制数据的!"

End Sub

代码解析:第1行到第3行代码写在工作簿的Open事件,在工作簿打开时使用OnKey方法改变<Ctrl +C>组合键的功能。当执行<Ctrl +C>组合键时候会执行mynz_32的过程,弹出对话框"本工作表是禁止复制数据的!"

我们不能让<Ctrl +C>组合键总是失去作用啊,为了恢复<Ctrl +C>组合键的真正功能我们还要写段代码,这段代码让Procedure参数省略,则按下<Ctrl +C>组合键时产生Microsoft Excel中的正常结果,同时清除先前使用OnKey方法所做的特殊击键设置,所以恢复<Ctrl +C>组合键的。利用的代码:Application.OnKey "^{c}"

为了不影响其他工作簿的功能,恢复代码就放在工作簿的Deactivate事件中。

  • 下面我介绍一下Deactivate事件,这个事件和Activate事件是相反的,Activate 事件是当一个对象成为活动窗口时发生,Deactivate 事件是当一个对象不再是活动窗口时发生。

下面看代码:

Private Sub Workbook_Deactivate()

Application.OnKey "^{c}"

End Sub

代码解析:当工作簿从活动状态转为非活动状态时恢复<Ctrl +C>组合键的正常功能。

下面我们看代码窗口:

按下<Ctrl +C>组合键后的截图:

今日内容回向:

1 OnKey方法的意义是什么:

2 如何屏蔽复制的快捷键?

本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

【分享成果,随喜正能量】迎接生活的崭新挑战,成为自我向前的一次又一次的跋涉,一次又一次的自我突围,一次又一次的信念重塑,一次又一次的崭新认知,成为对生活的一种真正尊重、多元适应。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表