关于 vba:在 DLL 中打包加载项

Packaging Add-Ins in DLLs

我有两个用 VBA 编写的 MS Office 插件,我想将它们打包到安装程序中,以及一些支持文件。由于保护加载项代码的 VB 密码很容易被破解,我想将加载项中的 VBA 代码"转换"为 DLL,然后从加载项调用 DLL。

在 DLL 中"放入"VBA 代码有哪些选择? Visual Studio 可以处理这个吗?有什么好的链接可以提供关于这些东西的一些非常基本的说明吗?谢谢。


由于没有其他人回答...尽管我使用过 VBA、VB6 并编写了 VB6 DLL,这些 DLL 是其他 3rd 方软件(尽管不是 Office)的插件,但我没有这样做的个人经验。

最简单的方法是将您的 VBA 代码转换为 VB6 COM 插件。那么您不必更改代码的内容,因为 VBA 与 VB6 99% 相同,并且您可以针对相同的 Office 对象模型进行编码。您需要更改将加载项链接到 Office 的管理。这是关于如何在 VB6 中编写 Office 插件的 2002 Microsoft MSDN 文章。

或者,您可以将 VBA 作为 VSTO 插件迁移到 VB.Net。完全支持 VB.Net,而现在只支持 VB6 运行时。缺点是工作量很大,需要学习和购买新东西。您需要使用混淆器,否则您的 .Net 代码可能比受密码保护的 VBA 更容易被反编译。

在您做出决定之前,请考虑一下有多少盗版者会攻击您的代码,如果他们破解了代码会有多糟糕,以及如何阻止他们复制您的二进制文件(不进行反编译)?正确的答案可能就是坚持使用 VBA 插件。