首页 > 解决方案 > 如何锁定excel宏(VB代码)

问题描述

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

标签: excelvba

解决方案


Unviewable+ 优点:这是一种更安全的方法

我对 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 的默认保存位置(很可能是您的 Documents 文件夹)中保存为“ProtectedWbk.xlsb”工作簿。

步骤 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”重命名为 zip 文件,如“ProtectedWbk.zip”

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

第 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 代码。


推荐阅读