lockingMicrosoft Excelmacros

我花了一些时间写了一个Excelmacros,这是很多公司可能值钱的。

如何lockingmacros以防止人们看到源/转发给其他人?

谢谢

保护/lockingExcel VBA代码 :

当我们编写VBA代码时,通常希望VBAmacros代码对最终用户不可见。 这是为了保护你的知识产权和/或阻止用户搞乱你的代码。 请注意,Excel的保护能力远不如安全。 www上还有很多VBA Password Recovery [工具]可供销售

要保护您的代码,请打开Excel工作簿并转至工具>macros> Visual Basic编辑器(Alt + F11)。 现在,从VBE内部进入工具> VBAProject属性,然后单击保护页面选项卡,然后选中“locking项目查看”,然后input密码,再次确认。 这样做后,您必须保存,closures并重新打开工作簿保护才能生效。

(强调我的)

看起来像你最好的select。 它不会阻止人们决定窃取你的代码,但它足以阻止偶然的海盗。

请记住,即使您能够分发代码的编译副本,也无法阻止人们对其进行反编译 。

你可以在http://hivelink.io看看这个新产品,它可以让你正确地保护你敏感的macros。

Excel的密码系统非常薄弱 – 只需使用一个基本的HEX编辑器就可以在2分钟内破解它。 我不会build议依靠这个来保护任何东西。

我在这里写了一篇关于这个主题的广泛的文章: 保护Excel工作簿中的代码?

就像您可以使用密码保护工作簿和工作表一样,您可以在Excel中对macros进行密码保护,以免被查看(并执行)。

在工作表上放置一个命令button,并添加以下代码行:

  1. 首先 ,创build一个你想保护的简单的macros。

    Range("A1").Value = "This is secret code"

  2. 接下来 ,单击工具 ,然后VBAProject属性

在这里输入图像描述

点击工具,VBAProject属性…

  1. 在“ 保护”选项卡上 ,选中“ locking要查看的项目 ”并input密码两次。

在这里输入图像说明

input密码两次

  1. 点击OK

  2. 保存closures并重新打开Excel文件。 尝试查看代码。

在这里输入图像说明

将出现以下对话框:

密码保护不被查看

您仍然可以通过单击命令button来执行代码,但不能查看或编辑代码(除非您知道密码)。 可下载的Excel文件的密码是“容易的”。

  1. 如果要密码保护macros不被执行,请添加以下代码行:
 Dim password As Variant password = Application.InputBox("Enter Password", "Password Protected") Select Case password Case Is = False 'do nothing Case Is = "easy" Range("A1").Value = "This is secret code" Case Else MsgBox "Incorrect Password" End Select 

单击工作表上的命令button时的结果:

在这里输入图像说明

密码被保护不被执行

说明 :macros使用Application对象的InputBox方法。 如果用户单击取消,此方法返回False并没有任何反应(InputBox消失)。 只有当用户知道密码(再次“简单”)时,密码才会被执行。 如果input的密码不正确,则显示MsgBox。 请注意,用户无法查看Visual Basic编辑器中的密码,因为该项目受保护而无法查看

你可以为你的vba代码设置一个密码 ,但是这可能容易被打破。

你也可以创build一个插件并将其编译到一个DLL中 。 在这里看到更多的信息。 这至less是保护你的代码的最安全的方法。

问候,

现代的做法是从VBA中移走重要的代码,并使用c#或vb.net编写一个.NETpipe理的加载项,在www上有很多这样的资源,你可以使用Express版本的MS视觉工作室

使用OfficeProtect与AppProtect或QuickLicense / AddLicense,从Excel电子表格为Mac或Windows生成受保护的应用程序。 在www.excelsoftware.com/videos上有一个名为“Protect Excel Spreedsheet”的演示video。