我有两个用VBA编写的MS Office加载项,我想将其打包到安装程序中,以及一些支持文件。由于保护加载项代码的VB密码很容易被黑客攻击,我想将我的加载项中的VBA代码“转换”为DLL,然后从加载项中调用DLL。
我有什么选择将“VBA”代码放入DLL中? Visual Studio可以处理这个吗?有什么好的链接能提供一些非常基本的指导吗?感谢。
答案 0 :(得分:2)
由于没有其他人回答...虽然我使用过VBA,VB6,并且已经编写了VB6 DLL作为其他第三方软件(虽然不是Office)的加载项,但我没有亲身经历这样做。 / p>
最简单的方法是将您的VBA代码转换为VB6 COM加载项。然后您不必更改代码的内容,因为VBA与VB6 99%相同,并且您可以针对相同的Office对象模型进行编码。您需要更改将加载项链接到Office的内务处理。这是关于如何在VB6中编写Office加载项的2002 Microsoft MSDN article。
或者,您可以将VBA作为VSTO加载项迁移到VB.Net。完全支持VB.Net,而only the VB6 runtime is now supported。缺点是它可能需要很多工作,而learn and buy则需要新功能。您需要使用obfuscator,否则您的.Net代码可能是decompiled even more easily而不是受密码保护的VBA。
在你做出决定之前,思考一下有多少海盗会攻击你的代码,如果他们破解它会有多糟糕,以及阻止他们只是复制你的二进制文件(没有反编译)是什么?正确的答案可能就是坚持使用VBA加载项。