在IDE加载项中制作VB6-或VBA-IDE环境相关参考?

Make a VB6- or VBA-IDE environments related reference in IDE Add-In?

我在VB6中成功创建了对Microsoft " Visual Basic 6.0可扩展性"的引用的VB6_IDE_Add_In。但是,要在VBA IDE(Excel,Access)中使用此加载项,我必须制作VB6_IDE_Add_In项目的副本,将其重命名为VBA_IDE_Add_In,重命名其属性,等等,主要是,将提到的引用更改为" Microsoft Visual Basic适用于应用程序扩展性5.3 "。

最后我有两个dll-一个用于VB6,第二个-用于VBA。我必须都将它们都放在" regsvr32 "并从VB6项" [HKCU \\\\\\\\\\ Software \\\\\\\\ Microsoft \\\\\\\\ Visual Basic \\\\\\"中手动移动VBA-IDE-Add-In注册表项6.0 \\\\\\\\ Addins] "插入VBA密钥[HKCU \\\\\\\\ Software \\\\\\\\ Microsoft \\\\\\\\ VBA \\\\\\\\ VBE \\\\\\\\ 6.0 \\\\\\\\\\ Addins] ...

是否可以使用条件编译或命令行参数来编译单个dll,从而对该VB6或VBA环境使用正确的引用?

很遗憾,这是我的第一个插件,在这件事上我的经验不足...


我怀疑您是否可以在VB6中为VB6和VBA编译单个加载项,因为这两个库共享相同的名称VBIDE,并且您的VB6项目将不允许两个具有相同名称的引用。 MZTools 3.0是用VB6编写的,用于发布VB5(使用另一个VB可扩展性库的早期版本),VB6和VBA的版本。自MZ工具版本8发布以来,源已迁移到.NET,并且支持多种环境和32位/ 64位版本的VB / VBA主机要容易得多。

明智的做法是跟随领导,并使用.NET开发解决方案。 32位和64位主机可以使用MZ工具或Rubberduck VBA之类的.NET解决方案,并通过从VBIDE类型库创建自己的Interop程序集(并嵌入其类型),可以创建单个dll。适用于VB5,VB6和VBA。

Rubberduck VBA尚未添加对VB6的支持,但我们正在努力:

具有OnConnect和OnDisconnect处理功能的共享VB6和VBA可扩展性插件