大众计算机学习网

专门提供各种电脑教程

禁用Excel部分菜单项(插入、视图、格式)的简单方法

Admin | 2009-8-4 20:47:54 | 被阅次数 | 9729

  如何通过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