Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何锁定excel宏(VB代码)_Excel_Vba - Fatal编程技术网

如何锁定excel宏(VB代码)

如何锁定excel宏(VB代码),excel,vba,Excel,Vba,我有一个excel,它编写了很多宏,现在我们的安全团队回来报告了这个漏洞,因为一个精通技术的人可以修改或删除宏。所以他们建议锁定宏,这样用户就看不见了。实际上,我通过在“保护”选项卡中选中“锁定项目以查看”来更改宏的安全性,该选项卡将锁定宏,但这种方法的问题是我需要维护密码。是否有其他方法可以锁定宏以限制用户查看。非常感谢您的帮助。为了保护您的宏不被其他用户编辑,最简单的方法当然是建议您使用的密码方法(禁止查看项目) 我知道还有另一种方法可以阻止人们查看您的宏。这是一个叫做的工具。如果您是一名开

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

为了保护您的宏不被其他用户编辑,最简单的方法当然是建议您使用的密码方法(禁止查看项目)

我知道还有另一种方法可以阻止人们查看您的宏。这是一个叫做的工具。如果您是一名开发人员,希望将包含代码的外接程序或工作簿分发给其他人,并且您不希望他们能够访问或更改代码,则此工具可以正常工作

密码

优点:

  • 易于实现
缺点:

  • 需要记住密码
  • 不太安全,因为有一些方法可以绕过密码使用一些技术,你可以在网上找到
无法查看+

优点:

  • 这是一种更安全的方法
缺点:

  • 这不是免费的

  • 您需要有一个主版本,将代码保存在一个单独的文件中。使代码不可查看后,将无法反转该过程,因此您希望仅将此保护应用于最终用户可访问的文件


就保护您的宏不被其他用户编辑而言,最简单的方法当然是建议您使用的密码方法(禁止查看项目)

我知道还有另一种方法可以阻止人们查看您的宏。这是一个叫做的工具。如果您是一名开发人员,希望将包含代码的外接程序或工作簿分发给其他人,并且您不希望他们能够访问或更改代码,则此工具可以正常工作

密码

优点:

  • 易于实现
缺点:

  • 需要记住密码
  • 不太安全,因为有一些方法可以绕过密码使用一些技术,你可以在网上找到
无法查看+

优点:

  • 这是一种更安全的方法
缺点:

  • 这不是免费的

  • 您需要有一个主版本,将代码保存在一个单独的文件中。使代码不可查看后,将无法反转该过程,因此您希望仅将此保护应用于最终用户可访问的文件

无法查看+优点: 这是一种更安全的方法

我对看不见的保护并不乐观

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

下面是一个关于如何查看受Unviewable+保护的VBA代码的10步指南

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

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

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

Workbooks("TheNameOfAddin.xlam").SaveAs "ProtectedWbk.xlsb", 50
然后关闭Excel。 执行上述操作后,“TheNameOfAddin.xlam”Excel加载项将保存为Excel默认保存位置的“ProtectedWbk.xlsb”工作簿,该位置很可能是您的文档文件夹

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

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

第5步。 将新工作簿重命名为具有zip扩展名的文件,例如:“NewWbk.zip” 将带有无法查看的VBA代码的工作簿从“ProtectedWbk.xlsm”重命名为类似“ProtectedWbk.zip”的zip文件

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

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

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

第9步。 开放图书馆办公室计算。 在LibreOffice C中打开“NewWbk.zip”
Workbooks("TheNameOfAddin.xlam").SaveAs "ProtectedWbk.xlsb", 50