保护 VBA(Visual Basic 应用程序)代码的 4 种方法

您编写的 VBA 代码是电子表格的核心。保护 VBA 代码是应该做的事情,以确保您的代码不会在您不知情的情况下被盗或使用。这篇文章将介绍一些保护 VBA 代码的不同方法,以便只有您才能轻松访问它。
为什么要关心保护 VBA 代码?
VBA 是一种宏语言,可用于在 Excel、Word、PowerPoint 中创建自动化任务或操作。您应该保护 VBA 代码的原因如下:
- 保护您的 VBA 代码不被意外更改。VBA 代码是 Excel 用户的一个强大工具,但对于不使用它的人来说,它也可能是一个令人沮丧的根源。如果您没有用密码保护 VBA,那么使用您的工作簿的其他人就可以访问代码并对其进行更改,而不知道他们实际上在做什么。您不想调试您的 VBA 代码,因为它可能很痛苦——可能需要几个小时才能弄清楚原因,然后甚至需要更多时间!
- 保护您的知识产权。VBA 代码对某些公司来说非常有价值。如果其他人访问您的电子表格并复制您使用的功能,那么他们可能会将其冒充自己的作品并将其出售给许多公司。使用安全措施保护您宝贵的源代码。不要让任何人轻易窃取或复制。
- 保护自己不被他人利用您的工作成果。如果您拥有一段有价值的 VBA 代码,该代码可让您的工作更轻松或更高效,那么您可能希望将其保护起来,仅供个人使用。
需要注意的是,有几种不同的方法来保护您的 VBA 代码,但并非所有方法都以相同的方式保护您的代码。这取决于您以及您认为最适合您需求的方法。
#1 使用 VBAProject 工具在 Excel 中保护 VBA 代码的密码
本部分解释如何使用 VBA 项目保护设置在某种程度上保护您的 VBA 代码免遭窥探和篡改。
- 安全级别:弱;有以下工具 VBA 密码移除器 可以在几分钟内解锁密码;
- 难度:简单;
- 费用:免费;
步骤1. 从 Excel 的“开发人员”菜单中选择“Visual Basic”。
第 2 步。 要锁定您的 VBA 项目,请单击栏中的“工具”,然后选择“VBAProject 属性”。
单击此菜单项后,您将看到以下对话框:
默认选择“常规”选项卡,但点击“保护”选项卡。
步骤3. 选中“锁定项目以供查看”,然后在两个框中输入两次密码,然后点击“确定”。
步骤4. 保存并重新打开 Excel 文件。双击 VBA 项目即可判断 VBA 密码保护是否已正确启用。使用密码保护 VBA 项目可防止任何人意外修改。
#2 使用 VBA 混淆来保护你的宏代码
VBA 混淆是一种让您的 VBA 代码不可读但仍可运行的技术。它使用多级混淆来修改您现有的宏,这使得底层逻辑难以理解。高级 VBA 混淆器使用多种高级混淆技术,使反向追踪和恢复变得更加困难。
- 安全级别:中;有人仍然能够花时间和投入足够的资源来恢复代码;
- 难度:中等;取决于级别;
- 成本: 免费 VBA 混淆器 /优质的;
您可以将 VBA 混淆与 #1 技术结合使用,即先混淆模块,然后用密码保护模块。请记住,混淆是不可逆的,因此在继续操作之前请备份源文件。还请记住,混淆的代码不能保证无错误地执行。请在发布之前对其进行彻底测试。使用项目的单个部分进行混淆。第一个模块混淆测试成功后,继续进行第二个测试。
#3 将 VBA 代码转换为动态链接库 (DLL)
Visual C++ 和 Visual Basic 等编译器生成的应用程序很难破解。这是因为代码被编译成可执行文件或动态链接库文件。所以我们也可以将 VBA 代码编译成动态链接库文件,然后在 Excel 中使用它。
- 安全级别:高;
- 难度:中等;
- 费用:免费;
强烈推荐这种保护方法,但不能 100% 保证。要了解如何编译,请参阅 VbaCompiler.com 上的说明: 将 VBA 代码编译为本机 Windows DLL 的 10 个步骤 。
#4 将 VBA 转换为 C 或 C++
将宏转换为 C 或 C++ 比 VBA 更难进行逆向工程。如果您想保护代码,这是最好的方法。
- 安全级别:最高;没有权限的话几乎不可能获取代码;但也不能100%保证;
- 难度:复杂,耗时;由于 VBA 和 C/C++ 是截然不同的语言,因此难度较大,需要投入大量精力。
结论
使用宏是简化高级函数开发的一种好方法。不幸的是,这会使您的代码面临被他人窃取或复制的风险。本文讨论了可用于防止其他用户窃取或篡改您的 VBA 代码的方法。请注意,VBA 代码保护并不是万无一失的,但它确实提供了一些针对临时攻击者的保护。