在Excel 2010中禁用VBA代码编辑器窗口

在Excel 2010中禁用VBA代码编辑器窗口,excel,excel-2010,vba,Excel,Excel 2010,Vba,我正在寻找一种可能性,以增加一个额外的安全级别,我的Excel项目 我们有多个用户。有些人知道(并打算知道)解锁VBA宏的密码。其他人无法访问这些 我不确定是否有人拥有不应该使用的密码(更改密码并没有停止篡改),因此我想为任何未经批准的用户禁用VBA编辑窗口。我找不到任何方法来做这件事,有可能吗 我无法禁用“保存”选项,因为所有用户都需要保存数据 我试图禁用功能区图标等,但没有成功。仍然可以使用Alt+F11打开代码窗口 任何帮助都会很好。我来自Excel 2003,但这个概念也适用于您。你可以

我正在寻找一种可能性,以增加一个额外的安全级别,我的Excel项目

我们有多个用户。有些人知道(并打算知道)解锁VBA宏的密码。其他人无法访问这些

我不确定是否有人拥有不应该使用的密码(更改密码并没有停止篡改),因此我想为任何未经批准的用户禁用VBA编辑窗口。我找不到任何方法来做这件事,有可能吗

我无法禁用“保存”选项,因为所有用户都需要保存数据

我试图禁用功能区图标等,但没有成功。仍然可以使用Alt+F11打开代码窗口


任何帮助都会很好。

我来自Excel 2003,但这个概念也适用于您。你可以想到

  • 捕获Alt-F11键(
    Application.OnKey“%{F11}”“MyNullSub”
    )加
  • 禁用相关菜单项(
    Application.CommandBars(…).FindControl(ID:=…).OnAction=“MyNullSub”


作为注册表中需要存在的项的依赖项(
GetSetting(…)
),但这只会在这个额外的秘密以(更改的)密码明显的相同方式传播之前有所帮助。

批准的用户如何访问VB编辑器?此外,如果未经批准的用户选择在打开工作簿时不允许使用宏,则此陷阱将不起作用。@Jean,如我所述:作为对注册表设置的依赖,即,仅当某个注册表项不存在时,才会设置陷阱。超级用户将被告知在“HKEY_CURRENT_USER\Software\VB和VBA设置”下设置某个键。。。。这是第二层保护。。。。正如我上面所说的,这也不是一个超级安全和防伪机制,但总比没有好,我现在明白了。我相信注册表键的技巧会比密码传播得慢得多+1因为我认为这个问题没有很好的答案,但这很接近@Jean我很感兴趣,进一步研究了这个案例。我开始使用数据库的身份验证机制。i、 e.用户必须输入UN和PW,VBA尝试连接并启动虚拟查询。如果成功-好,如果不退出。效果非常好,可以消除一些头痛。由于底层的网络协议,这也是非常安全的。我将对此进行扩展,并尝试通过安全网站(SSL)进行身份验证
Sub MyNullSub()
' do nothing
End Sub