【分享成果,随喜正能量】无伐善,无施劳。人心底有善良,就会知道,生活的底色本就是善良和勇敢,前行路上,才可无所畏惧。。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第48讲:屏蔽EXCEL右键命令
第四十八讲 如何屏蔽EXCEL工作表操作时右键命令
大家好,我们今日继续讲解VBA代码解决方案的第48讲内容:如何屏蔽工作表的右键所有的命令。比如我自己在利用EXCEL做一些VBA程序时,往往会想尽一切办法让界面简洁、再简洁,这个界面就是所谓的自定义的界面,在使用自定义的操作界面时,这时,问题来了,如果需要屏蔽Excel中所有的右键命令栏,是否可以做到呢?答案当然是肯定的。
在讲解本节的内容之前,我们要先复习一下循环语句,什么是循环语句呢?在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。循环结构是在一定条件下反复执行某段程序的流程结构,被反复执行的程序被称为循环体。循环语句是由循环体及循环的终止条件两部分组成的。在VBA中循环语句常用的有FOR NEXT循环,FOR EACH循环及DO WHILE循环,我们今天讲解的将利用循环语句。
1 屏蔽EXCEL工作表操作右键命令的代码
好了,言归正传,我们看下面的代码。
Sub mynz_48_1() '如何屏蔽EXCEL工作表操作时右键命令
Dim Ctrl As CommandBar
Dim i As Integer
i = 2
For Each Ctrl In Application.CommandBars
Cells(i, 1) = Ctrl.accName
Cells(i, 2) = Ctrl.accDescription
Cells(i, 3) = Ctrl.ID
Cells(i, 4) = Ctrl.Enabled
If Ctrl.Enabled = True Then Ctrl.Enabled = False
Cells(i, 5) = Ctrl.Enabled
i = i + 1
Next
End Sub
Sub mynz_48_2() '如何屏蔽EXCEL工作表操作时右键命令
Dim Ctrl As CommandBar
Dim i As Integer
i = 2
For Each Ctrl In Application.CommandBars
Cells(i, 1) = Ctrl.accName
Cells(i, 2) = Ctrl.accDescription
Cells(i, 3) = Ctrl.ID
Cells(i, 7) = Ctrl.Enabled
If Ctrl.Enabled = False Then Ctrl.Enabled = true
Cells(i, 8) = Ctrl.Enabled
i = i + 1
Next
End Sub
代码窗口:
2 屏蔽右键的代码讲解及实际效果
代码解析:上面的两段代码分别讲了屏蔽右键的方法,
1)我们先运行mynz_48_1 这时候将导出Application.CommandBars的所有命令。并屏蔽右键如下图。
2) 我们运行MyShowShortcuts2后这个时候将改变Enabled 的属性,所用的语句如下:If Ctrl.Enabled = False Then Ctrl.Enabled = True这个时候我们可以对照一下前后的区别。截图如下:我们看到更改后的Enabled = True了,这个时候的右键是可以起作用了。
有了上述的代码,我们就可以达到最初的目的了。
今日内容回向:
1 屏蔽右键的思路是怎么样的?
2 上述代码主要利用到了什么属性。
本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】人到了一定年纪,是往回收的,收到最后,三两知己、一杯浅茶,把生活活成自己想要的样子。。