如何锁定excel宏(VB代码)

时间:2018-06-06 15:28:13

标签: excel-vba vba excel

我有一个写有很多宏的excel,现在我们的安全团队已经回来并报告了这个漏洞,因为技术娴熟可以修改或删除宏。所以他们建议锁定宏,以便用户甚至都看不到它。实际上,我通过在保护选项卡中选中“Lock Project for viewing”来更改宏安全性,这将锁定宏,但这种方法的问题是我需要保持密码。有没有其他方法可以锁定宏以限制用户查看。帮助将非常感激。

2 个答案:

答案 0 :(得分:2)

<块引用>

不可见+ 优点: 这是一种更安全的方法

我对 Unviewable+ 保护不太乐观。

任何“不可查看的 VBA 代码”保护仅在 Excel VBA 编辑器中有效,并且该 VBA 代码可在 Excel 之外访问。

这里是关于如何查看受 Unviewable+ 保护的 VBA 代码的 10 步指南。

第 1 步。 检测受 Unviewable+ 保护的工作簿或 Excel 加载项的文件格式。 为此,请在记事本中打开该文件并查看其前 2 个符号。 如果第一个符号是“PK” – 文件为 XLSM 格式,否则为 XLSB 格式(复合 OLE 存储)。如果您的文件是 XLSM 格式,请转到第 4 步。

第 2 步。 如果您有 XLSB 格式的无法查看的 Excel 加载项,则需要将其另存为工作簿。为此,请在 Excel 中打开加载项文件,打开 VBA 项目 (Alt+F11) 并打开“立即窗口”(Ctrl+G)。 在即时窗口中键入以下命令并按 Enter(而不是“TheNameOfAddin.xlam”,请使用受 Unvewable+ 保护的加载项文件名):

Workbooks("TheNameOfAddin.xlam").IsAddin = False

然后输入下一个命令并按 Enter:

Workbooks("TheNameOfAddin.xlam").SaveAs "ProtectedWbk.xlsb", 50

然后关闭 Excel。 作为上述操作的结果,“TheNameOfAddin.xlam”Excel 加载项在 Excel 的默认保存位置保存为“ProtectedWbk.xlsb”工作簿,该位置很可能是您的 Documents 文件夹。

第 3 步。 将 .XLSB 格式的工作簿转换为 .XLSM 格式的工作簿。 为此,请在 Excel 中打开 .XLSB 文件,然后使用“文件”>“另存为”将其保存为 XLSM 格式(Excel 启用宏的工作簿),例如“ProtectedWbk.xlsm”。 关闭 Excel。

第 4 步。 在 Excel 中创建一个新的空工作簿并将其保存为 XLSM 格式(例如名称为“NewWbk.xlsm”)。 在“NewWbk.xlsm”中打开 VBA 项目 (Alt+F11) 并将一个新模块添加到项目中(通过右键单击“项目 – VBAProject”资源管理器窗口,然后左键单击“插入”->“模块”按钮)。保存工作簿。 关闭 Excel。

第 5 步。 将新工作簿重命名为带有 zip 扩展名的文件,例如:“NewWbk.zip” 将带有不可见 VBA 代码的工作簿从“ProtectedWbk.xlsm”重命名为“ProtectedWbk.zip”之类的 zip 文件

第 6 步。 在 Windows 资源管理器中打开 ProtectedWbk.zip 并转到名为“xl”的文件夹 如果您看到一个名为“vbaProject.bin”的“bin”文件,则将其解压缩到磁盘上。 如果您看到 2 个名为“vbaProject.bin”和“printerSettings.bin”的“bin”文件,则在磁盘上解压缩“printerSettings.bin”文件并将解压后的文件从“printerSettings.bin”重命名为“vbaProject.bin”。< /p>

第 7 步。 在 Windows 资源管理器中打开 NewWbk.zip 并转到“xl”文件夹并用您在步骤 6 中解压缩的“vbaProject.bin”覆盖“vbaProject.bin”。

第 8 步。 如果您没有安装 LibreOffice,请从他们的官方网站(如下链接)下载并安装到您的计算机上。

https://www.libreoffice.org/download/download/

第 9 步。 打开 LibreOffice Calc。 在 LibreOffice Calc 中打开“NewWbk.zip”。

第 10 步。 按照路径 - LibreOffice Calc 主菜单 > 工具 > 宏 > 编辑宏。打开“NewWbk.zip”目录,观察“受保护”文件中的所有VBA代码。

答案 1 :(得分:0)

在保护您的宏不被其他用户编辑方面,最简单的方法当然是您建议的密码方法(从查看锁定项目)。

我知道另一种阻止人们查看宏的方法。这是一个名为 Unviewable+ 的工具。当您是一名开发人员想要将加载项或带有代码的工作簿分发给其他人并且您不希望他们访问或更改代码时,此工具很有效。

密码

优点:

  • 易于实施

缺点:

  • 需要记住密码。
  • 安全性较低,因为有些方法可以使用您可以在线找到的某些技术来绕过密码。

<强>不可视+

优点:

  • 这是一种更安全的方法

缺点:

  • 这不是免费的

  • 您需要拥有一个主版本,您可以将代码保存在单独的文件中。在使代码无法查看之后,无法撤消该过程,因此您只想将此保护应用于最终用户可访问的文件。