锁定Microsoft Excel宏

Dav*_*ave 21 security excel vba

我花了一些时间编写Excel宏,这对很多公司来说都是值得的.

如何锁定宏以防止人们看到源/转发给其他人?

谢谢

Bri*_*ett 21

保护/锁定Excel VBA代码:

当我们编写VBA代码时,通常希望最终用户看不到VBA宏代码.这是为了保护您的知识产权和/或阻止用户搞乱您的代码.请注意,Excel的保护能力远远不能被认为是安全的.在www上还有许多VBA密码恢复[工具].

要保护代码,请打开Excel工作簿,然后转到工具>宏> Visual Basic编辑器(Alt + F11).现在,从VBE中转到工具> VBAProject属性,然后单击保护页面选项卡,然后选中"从查看中锁定项目",然后输入您的密码并再次进行确认.执行此操作后,您必须保存,关闭并重新打开工作簿才能使保护生效.

(强调我的)

似乎是你最好的选择.它不会阻止那些决定窃取你的代码的人,但它足以阻止随意的海盗.

请记住,即使您能够分发代码的编译副本,也没有什么可以阻止人们反编译它.


sha*_*eef 12

就像您可以使用密码保护工作簿和工作表一样,您可以使用密码保护Excel中的宏不被查看(和执行).

在工作表上放置一个命令按钮并添加以下代码行:

  1. 首先,创建一个您想要保护的简单宏.

    Range("A1").Value = "This is secret code"

  2. 接下来,单击工具,然后单击VBAProject属性 ...

在此输入图像描述

单击工具,VBAProject属性...

  1. 在" 保护"选项卡上,选中" 锁定要查看的项目 "并输入两次密码.

在此输入图像描述

输入密码两次

  1. 单击确定.

  2. 保存,关闭并重新打开Excel文件.尝试查看代码.

在此输入图像描述

将出现以下对话框:

密码不受保护

您仍然可以通过单击命令按钮来执行代码,但不能再查看或编辑代码(除非您知道密码).可下载的Excel文件的密码"简单".

  1. 如果要密码保护宏不被执行,请添加以下代码行:
Dim password As Variant
password = Application.InputBox("Enter Password", "Password Protected")

Select Case password
    Case Is = False
        'do nothing
    Case Is = "easy"
        Range("A1").Value = "This is secret code"
    Case Else
        MsgBox "Incorrect Password"
End Select
Run Code Online (Sandbox Code Playgroud)

单击工作表上的命令按钮时的结果:

在此输入图像描述

密码不受执行限制

说明:宏使用Application对象的InputBox方法.如果用户单击"取消",则此方法返回False,并且没有任何反应(InputBox消失).只有当用户知道密码(再次"简单")时,才会执行密码.如果输入的密码不正确,则会显示MsgBox.请注意,用户无法在Visual Basic编辑器中查看密码,因为该项目不会被查看


stu*_*zor 9

您可以在http://hivelink.io上查看这个新产品,它可以让您正确保护敏感的宏.

Excel密码系统非常弱 - 只需使用基本的HEX编辑器,您就可以在2分钟内破解它.我不建议依靠它来保护任何东西.

我在这里写了一篇关于这个主题的大量文章:在Excel工作簿中保护代码?