我花了一些时间编写了一个Excel宏,它对许多公司来说都有潜在的价值。
我如何锁定宏,以防止人们看到源代码/转发给其他人?
谢谢
发布于 2011-07-20 21:42:59
Protect/Lock Excel VBA Code
当我们编写VBA代码时,通常希望VBA宏代码对最终用户不可见。这是为了保护你的知识产权和/或阻止用户摆弄你的代码。请注意,Excel的保护能力远远谈不上是安全的。上也有很多VBA密码恢复工具在出售。
若要保护代码,请打开“Tools>Macro>Visual工作簿”,然后转到“Tools>Macro>Visual Basic编辑器(Alt+F11)”。现在,从VBE转到Tools>VBAProject属性,然后单击保护页面选项卡,然后选中“锁定项目查看”,然后输入您的密码并再次确认。完成此操作后,您必须保存、关闭并重新打开工作簿,以使保护生效。
(强调我的)
看起来是你最好的选择。它不会阻止人们决心窃取你的代码,但它足以阻止偶然的盗版。
请记住,即使您能够分发代码的编译副本,也没有什么可以阻止人们decompiling它。
发布于 2016-03-31 17:48:46
就像您可以对工作簿和工作表进行密码保护一样,您也可以对Excel中的宏进行密码保护,使其不被查看(和执行)。
在工作表上放置一个命令按钮,并添加以下代码行:
Range("A1").Value = "This is secret code"

依次单击工具、VBAProject属性...

输入两次密码
Excel单击OK.

将出现以下对话框:
密码受保护,不会被查看
您仍然可以通过单击命令按钮来执行代码,但您不能再查看或编辑代码(除非您知道密码)。可下载的Excel文件的密码是“容易”的。
Dim password As Variant password =Application.InputBox(“输入密码”,"Password Protected")选择大小写密码大小写= False‘不做任何事情大小写is = "easy“范围(”A1“).Value=”这是密码“大小写否则MsgBox”不正确的密码“结束选择
单击工作表上的命令按钮时的结果:

密码被保护不会被执行
应用程序宏将使用Explanation:对象的InputBox方法。如果用户单击Cancel,此方法将返回False,并且不会发生任何操作(InputBox将消失)。只有当用户知道密码(再次“容易”)时,密码才会被执行。如果输入的密码不正确,则会显示MsgBox。请注意,用户不能在Visual Basic编辑器中查看密码,因为项目受到保护,不能被查看
发布于 2015-03-11 01:31:24
你可以在http://hivelink.io上查看这个新产品,它可以让你正确地保护你的敏感宏。
Excel密码系统极其脆弱--你只需使用一个基本的十六进制编辑器就可以在2分钟内破解它。我不建议依靠这个来保护任何东西。
我在这里写了一篇关于这个主题的长篇文章:Protecting Code in an Excel Workbook?
https://stackoverflow.com/questions/6760981
复制相似问题