如何破解Excel VBA的工程密码

有时候,我们对自己所设置的 Excel VBA工程密码忘记了,导致不能对 VBA 代码进行修改或修正。此时,可以用本文所述方法进行移除。

破解的原理和方法:MS Excel 文件以压缩格式存储的,如果 Excel 文档有 VBA 工程,在压缩文档中有一个 vbaProject.bin 文档。这是一个二进制的文件,其中保存有VBA工程的密码,可以将文件的密码部分替换,达到破解的目的。

需要用到的工具:VSCode、WinRAR、 合适的二进制文件编辑器。为什么说是合适的二进制文件编辑器呢?主要是在于能让我们方便地替换文件的内容。一会说明。

假设我们有一个 工作簿1.xlsm 文件,其中的 VBA 工程密码我们不知道,需要破解。我们先将文件的扩展名改为 rar, 然后用 WinRAR 解压该文件。为安全起见,原始文件请做好备份。

该文件位于 xl 文件夹下面

接下来,使用 VSCode + Hex Editor插件方法以文本方式打开 vbaProject.bin,下面截图的部分就是密码存储区。


我们的目的就是要对框起来的部分进行替换。新建一个 Excel 文件,比如 123.xlsm,将 123.xlsm 的VBA 的工程密码设为 123,再将文件名改为 123.xlsm.rar,然后用 WinRAR 打开(注意:是打开,不是解压缩)。WinRAR 提供 二进制文件的查看功能,我们同样找到 vbaProject.bin 的密码保存区,将这一部分文本拷贝出来:


将123.xlsm.rar 文件中的这一部分拷贝出来,替换解压的文件夹中相应的部分并且保存。

接下来,需要将修改后的 vbaProject.bin 塞回到 “工作簿1.xlsm.rar” 文件中。为保险起见,用 WinRAR 查看的方式打开 “工作簿1.xlsm.rar” 文件,如下图这样:


进入 xl 文件夹:


将修改后的 vbaProject.bin 拖到相同的位置,就替换了。再将 “工作簿1.xlsm.rar” 更名为 “工作簿1.xlsm” 即可。此时,该文件的 VBA 工程密码为123,我们可以修改密码,或者去掉 VBA 工程密码保护。

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
VBA是一种在Microsoft Office软件中常用的编程语言,可以用于自动化各种任务和操作。有时候在VBA编写的工程中,我们可能会使用密码来保护代码的安全性。然而,如果我们忘记了工程密码,或者想要批量清除多个VBA工程密码,该怎么办呢? 1. 如果只有一个VBA工程需要清除密码,可以采取以下步骤: a. 打开VBA工程所在的Office应用程序,如Excel或Word。 b. 进入VBA编辑器,通过快捷键ALT+F11或选择“开发工具”->“Visual Basic”来打开。 c. 在VBA编辑器中,选择“工具”->“VBA项目属性”。 d. 在弹出的对话框中,选择“保护”选项卡。 e. 在密码框中输入有效的密码,然后将密码框清空。 f. 点击“确定”以保存更改。现在,该VBA工程密码已被清除。 2. 如果有多个VBA工程需要清除密码,可以编写一个VBA宏来批量完成操作。以下是一个示例的代码: ```vba Sub ClearProjectPassword() Dim proj As Object Dim projPath As String ' 设置需要清除密码VBA工程文件路径 projPath = "C:\Path\To\Your\VBA\Project.xls" ' 打开VBA工程 Set proj = Application.VBE.VBProjects.Open(projPath) ' 清除密码 proj.Protection.Remove ' 保存更改并关闭VBA工程 proj.VBComponents.Save proj.VBProjects.Close ' 释放资源 Set proj = Nothing End Sub ``` 上述代码可以在VBA编辑器中直接运行。修改 `projPath` 变量的值为需要清除密码VBA工程文件的路径,然后执行该宏即可批量清除所有指定路径下的VBA工程密码。 无论是单个VBA工程还是批量清除密码,务必谨慎操作。同时,在使用VBA时要遵守相关的法律法规和公司规定,确保代码使用的合法性和安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值