文档

保护 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”。

从 Excel 开发人员选项卡打开 Visual Basic 面板

第 2 步。 要锁定您的 VBA 项目,请单击栏中的“工具”,然后选择“VBAProject 属性”。

选择“VBAProject 属性”来设置密码

单击此菜单项后,您将看到以下对话框:

VBAProject 属性的主界面

默认选择“常规”选项卡,但点击“保护”选项卡。

步骤3. 选中“锁定项目以供查看”,然后在两个框中输入两次密码,然后点击“确定”。

锁定 VBA 项目以供查看并设置密码以保护 VBA 代码

步骤4. 保存并重新打开 Excel 文件。双击 VBA 项目即可判断 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 个步骤

使用 VbaCompiler for Excel 成功完成 Excel 文件 VBA 代码编译

#4 将 VBA 转换为 C 或 C++

将宏转换为 C 或 C++ 比 VBA 更难进行逆向工程。如果您想保护代码,这是最好的方法。

  • 安全级别:最高;没有权限的话几乎不可能获取代码;但也不能100%保证;
  • 难度:复杂,耗时;由于 VBA 和 C/C++ 是截然不同的语言,因此难度较大,需要投入大量精力。

结论

使用宏是简化高级函数开发的一种好方法。不幸的是,这会使您的代码面临被他人窃取或复制的风险。本文讨论了可用于防止其他用户窃取或篡改您的 VBA 代码的方法。请注意,VBA 代码保护并不是万无一失的,但它确实提供了一些针对临时攻击者的保护。

苏珊娜的照片

苏珊娜

Susanna 是 Filelem 的内容经理和作家。她多年来一直是一名经验丰富的编辑和书籍版式设计师,并且对尝试和测试各种生产力软件很感兴趣。她还是 Kindle 的忠实粉丝,使用 Kindle Touch 已有近 7 年,几乎走到哪里都带着 Kindle。不久前,这款设备报废了,所以 Susanna 很高兴地买了一台 Kindle Oasis。

相关文章

返回顶部按钮