VBA:我的代码如何检查我是否解锁了它?

时间:2017-07-18 09:03:50

标签: vba password-protection

我的代码是否有办法检查VBA编辑器中的代码是否已解锁以进行编辑?我想创建一个全局的“管理模式”变量,它可以让我在开发环境和实时环境中获得更多控制权。

1 个答案:

答案 0 :(得分:1)

这将解决问题, 应该作为UDF工作(尽管它会变化)。但是,这要求宏具有VBProject的编程访问权限,默认情况下不启用,并且必须在Excel的“信任中心”选项中启用(PER USER)。小鸡和鸡蛋,没有办法以编程方式设置信任中心选项。

Public Function IsDevMode() As Boolean
  IsDevMode = (ThisWorkbook.VBProject.Protection=0)
End Function

但是,没有事件可以捕获以了解此值何时更改,因此很难使用它来对工作簿进行更改以进入和退出开发人员模式。 #34;一个更好的选择可能是在某个地方添加一个按钮来切换开发者模式" (隐藏和显示内容,解锁/锁定工作表等),并在该切换按钮的单击方法中,使用上面的代码查看如果代码已在此会话中解锁。如果是,请继续,如果没有,请忽略。这样,通过解锁代码,您基本上可以授予自己使用该按钮的权限。