如何防止用户访问VBA?

时间:2009-07-15 05:31:14

标签: vba password-protection

我们有一个COM加载项,我们在MS Office应用程序中使用,如Word和Excel。 该COM加载项暴露了很少的API,我们将其用于自定义。

问题是 - 任何用户都可以访问API并导致安全问题。 我们不希望这种情况发生,我们希望只向少数人提供对VBA编辑器的访问。

有没有办法 - 在不禁用VBA的情况下禁用VBA编辑器,因为我们想要使用其他宏和加载项。

提前致谢!

PS - 我试图从工具栏中隐藏“开发者”标签,但任何知道快捷方式的人(ALT-F11)仍然可以使用它。

3 个答案:

答案 0 :(得分:2)

如果COM加载项的其中一个要求是限制访问,则解决方案不应该禁用除访问它之外的任何内容。答案应该是修复加载项本身。一种简单的方法是定义可以使用加载项的用户组,然后只需进行加载项检查以验证用户是否是该组的成员。这应该易于实现并且易于维护。

答案 1 :(得分:1)

VBA密码保护实际上并不能保护您免受阅读该文件的人的侵害。取消保护非常简单。

另一种方法是混淆COM API和VBA(因此,即使人们可以阅读代码,也很难弄清楚发生了什么)。 Apple过去曾这样做过(例如isYoMamaWearsCombatBootsSupported - https://github.com/JaviSoto/iOS7-Runtime-Headers/commit/6ccf9c4526992fec0dc414d48e4a3f7446e9822f#L10R61

答案 2 :(得分:0)

您无法添加密码来查看/编辑代码吗?那么至少他们看不到你的api,应该阻止他们打开编辑器。

右键单击VBA项目窗口中的项目,然后选择“属性”以在“保护”选项卡中为该项目添加密码。

相关问题