Excel VBA代码有类似javascript的混淆工具么?

写好了VBA代码要发给客户,但是客户有一定的VBA基础,不希望代码呗客户拿去二次修改和转卖,现在的vba代码保护手段都偏弱,我知道Javascript…
关注者
4
被浏览
5,604

3 个回答

Excel的VBA代码虽然可以加密,但无法真正阻挡窥视者的目光,且无法编绎和生成不含源码的执行文件

使用Excel 插件,可以实现动态加密和解密(或混淆与解混)操作,便毕竟经过这个加解密过程,还是容易被截获或破解。因为它并不是真正编译并生成不含源码 的执行文件。所以理论上始终有被破解的可能。

所建议使用Access VBA , Access可以生成mde或accde ,这是编译生成后完全去除源码的执行文件(可结合Access runtime运行时,脱离Access环境独立运行),它相当于VB或Delphi生成的exe执行文件。发布与打包将更加方便,而且可以保证源作者的代码安全及保护版权。

Access对比Excel的优势:

1.关系数据库 数据严谨

Excel录入非常灵活,但这个优点恰恰也是它的缺点,这将导致录入人员随意使用不同的格式和标准,数据杂乱,无法统一内容以及进行大量数据对比分析,Access恰恰可以解决这些问题,它本身就是关系数据库,对数据的校验要求严格,不同的数据类型存放不同的数据。

2.Access相对Excel来说,存储的数据容量容易会大很多

可以存放几百万甚至上千万的数据,大家都知道Excel2003有数据限制,即使是Excel2010或更高版本,即使数据容量扩展了,但一旦数据非常大时,文件打开及数据分析都会很慢,Excel里面搞个几万行撑死如果再加上很多公式,很容易卡死,并且还有文件损坏的风险。而Access里存放几百万的数据,并且通过索引在关系数据库中查询这些内容速度会非常快。

3.Excel没有专业的窗体 报表 查询 这些元素

要做窗体界面必须要借助Form2.0, 而Access里是窗体 报表以及各种丰富的内置控件,与专业的开发工具无异,而且还可以通过Activex使用更丰富的第三方控件。

4.Excel的VBA代码虽然可以加密,但无法真正阻挡窥视者的目光

且无法编绎和生成不含源码的执行文件,而Access可以生成mde或accde ,它相当于VB或Delphi生成的exe执行文件。发布与打包将更加方便,而且可以保证源作者的代码安全及保护版权。

5.Access可以将数据表与前端的窗体、报表以及模块拆分开来

这样更新数据时不影响程序,更新程序时不影响数据。相对独立安全。且安装及更新方便。

6.Excel无法脱离Office运行,必须要先安装一个Office及Excel组件才能使用

而Access可以像VB运行时一样,只要客户电脑安装一个Access Runtime的运行包,就可运行你生成的Access执行程序,更像一个专业的管理软件

7.Access可以制作出专业的管理软件

启动窗体、登录界面、软件主界面、各种数据录入窗体、数据查询窗体、报表打印,可以包装成一个专业的软件样式,而看不出是Office开发出来的。而Excel一般启动时都能看出Excel的影子,且容易破解窗体和代码。

8.Access作为前台,通过ODBC链接到Access后台、Sql server后台、Mysql甚至Oracle数据库

可以工厂和单位实现企业级的管理软件应用,甚至跨集团的应用,这种应用在我们的客户中屡见不鲜。

9.Access作为一个完整的前后台,可以拆分

还是拆分成前后台2个文件,或链接到Sql server大型数据库,前台开发的方式基本上都保持一致,你可以开始在Access后台来开发一个小型应用,成熟后再升迁到Sql server大型数据库,以前开发的代码几乎完全可以继续使用。

10.Access支持大部分的Sql标准语法

这样可以利用到数据库的很多优势,这是Excel无法比拟的


更多Access与Excel的深入对比


总结:在Windows平台,绝对Access更好用

Access数据库既是一个后端的数据库容器,也是一个优秀的前端界面开发工具,而且可以生成mde或accde格式(去除了源码),而可借助access runtime脱离Access环境独立运行。并且开发中小型企业管理系统短平快,如果你在使用Excel管理公司业务时出现瓶颈,且需要多人同时并发操作,那使用Access数据库来开发一个中小型的部门级或企业级的管理系统可能是您较不错的选择,短、平、快!



Access开发的相关行业管理系统:

比较好的Access免费学习资源:


潜心研究 VBA ACCESS, 也可关注我 @小辣椒高效Office

当然有的 我得 VBA代码助手专业版 就有这个功能

下载地址 百度云盘链接: pan.baidu.com/s/1jCh4Bs 提取码: aaav

打开混淆加密窗口

首先打开目标文件,进入要处理的代码区



10.2 代码混淆加密基本用法

打开窗口后,点击模块混淆即可,注意混淆规则public变量和函数过程不会混淆 如果希望函数名混淆要设为Private 变量名也需要定义否则不会混淆



10.3 自定义词库混淆



10.4 数字和字符串混淆

勾选右上角 数字和字符串混淆即可达到下图效果 本功能会降低代码运行速度 且容易导致混淆后运行失败,使用时请谨慎测试,不适合大规模使用,可对单个重要函数使用即可



10.5 重点注意事项

  • 一般混淆配合模块隐藏加密使用,先混淆再做模块隐藏
  • 混淆不可逆,操作前请注意备份源文件
  • 混淆的前提是变量要先定义,pubulic或者无定义的变量会保持原样,函数过程需要混淆请加Private声明
  • 混淆后代码不能保证百分百运行无误,请仔细测试后再发布
  • 不要使用工程混淆,单模块混淆测试无误后进行下一个模块混淆

版权所有 @ 郑广学 excel880.com