如何通过VBA禁用Excel的部分菜单功能,让部分菜单不能使用,即屏蔽Excel部分菜单。
关于这个问题,非VBA莫属!
先看效果吧!
下图是屏蔽“编辑”菜单中的“复制”功能。
下图,是屏蔽“视图”菜单中的“工具栏”菜单项!
还有啊,请认真看上面两图,本例还屏蔽了整个“插入”菜单!
那么,屏蔽部分菜单项,该如何做呢!俺首先告诉阁下,非常简单,实在是简单得狠,相应的VBA代码也极其简单,但是功能却非常强大,请看好洛,下面我们开始吧!
一、实现过程
在Excel窗口中,按下“Alt+F11”组合键,弹出如下图的“Microsoft Visual Basic”窗口,如下图!
然后,如上图一样,找到“ThisWorkbook”,点击右键,选择“查看代码”,弹出代码编写窗口,如下图!
上图中,请在对象名那里选择“Workbook”,然后在事件名那里选择“SheetSelectionChange”;
最后,输入如上图一样的代码,然后在“Microsoft Visual Basic”窗口中对代码进行保存,之后点击“小三角形”那运行按钮,让代码即刻产生效果。
返回Excel窗口,这样,整个过程已然结束。
二、知识扩展
(一)、不知道大家注意到了没有,代码中的事件名称,我们选择的是“SheetSelectionChange”,该事件名称的含义就是:当我们选择任何一个单元格时,上述代码马上就产生效果。这样做的目的,有一个优点,那就是,无论在任何时候,代码的功能都会产生效果。部分技术文章,将代码放置于其它事件名称里面,比如打开、关闭Excel文件时,才产生这样的功能,但是,这样的效果,万一别人在操作Excel的时候,通过其它方式恢复了屏蔽菜单,那么,就达不到要求了。
(二)、至于编写屏蔽菜单的VBA代码,非常简单,因为可以使用中文通用公式来写。
①Application.CommandBars("Worksheet Menu Bar").Controls("插入(I)").Enabled = False;通过它,我们可以推出一个通用公式,那就是:
Application.CommandBars("Worksheet Menu Bar").Controls("菜单名").Enabled = False;注意哦,“菜单名”这里,就请您阁外认真看了,名字千万不能写错!
自己选择相应的菜单,就知道它的名称了,比如,插入菜单的名字是:"插入(I)",而编辑菜单的名称是:编辑(E),好了,其它就不介绍了,相信大家都知道相应菜单的名字是什么!
②另外,还有屏蔽子菜单代码公式是:
Application.CommandBars("Worksheet Menu Bar").Controls("菜单名").Controls("子菜单名").Enabled = False
③以上的屏蔽、禁用菜单和子菜单的公式,如果我们想要恢复被屏蔽过的菜单,应该如何编写代码呢?非常简单,只要将False改为True就行了!
以上代码仅是屏蔽Excel部分菜单、部分子菜单和右键,如果您想屏蔽(或破解)所有菜单和工具栏,请参阅文章:http://www.dzwebs.net/2455.html;