保护Excel VBA代码的最佳方法?

Chr*_*ix3 12 excel vba password-protection

我已经整理了一个简单的Excel数据库,它执行一些宏功能,我需要将这个数据库分发给少数人 - 但他们无法看到宏功能如何实际工作(我必须遵循愚蠢的规则!).实现这一目标的最佳方法是什么?

我做了一些研究,我找到了两种方法:

  • 密码保护VBA项目 ; 但这显然很容易在网上使用现成的工具打破(我发送的人最感兴趣的是找出宏和功能如何工作;所以我几乎100%肯定他们会尝试进入它..因此密码保护似乎不足.

  • 转到像C++这样完全编译的语言 ; 我的技能非常局限于Excel和Access上的VBA,因此这是理想的解决方案; 对我来说不是解决方案:(

还有其他方法吗?我想到了一个包含所有宏的'master excel文档',然后将'children'数据库发送给最终用户并让'children'数据库连接到'master' - 这样的事情可能吗?通过在线托管主人,甚至向最终用户发送主人,但除非被'儿童'数据库访问,否则使其完全无法访问?

San*_*osh 5

您可以创建自动化添加.

自动化添加提供了几个优点

  • 执行速度:用VB6编写的自动化添加编译为本机机器代码,其运行速度比解释的VBA语言快得多.

  • 安全性:与XLA插件不同,您永远不会将源代码分发给最终用户.如果您的代码具有专有信息或知识产权价值,则可以在您自己的计算机上安全地保护.它永远不会分发给用户.您的代码永远不会受到损害.

http://www.cpearson.com/excel/automationaddins.aspx

  • vb6已经过时了.我会推荐VSTO :) (6认同)
  • VB6 库不适用于使用 64 位 Excel 的任何人,但除此之外,它们可能很好,并且您可以按照您在 Excel 中熟悉的方式使用 VB。VSTO 很好但很烦人,因为用户需要在他们的机器上进行管理员访问才能安装您的插件。我在这里写了一篇更广泛的帖子:http://stackoverflow.com/questions/16363621/protecting-code-in-an-excel-workbook/28968867#28968867 (2认同)