2013-08-30 60 views
0

我有一个Excel加载项文件(.xla),其中包含VBA代码在另一个文件中使用的VBA函数和类。将VBA模块转换为COM对象

我想将VBA函数和类转换为进程内COM服务器。 VBA类似乎可以转换为COM对象,但我不知道是否可以将包含VBA函数的VBA模块转换为COM对象,以便可以从其他VBA代码调用这些函数而不指定其类名。可能吗?如果是这样,我该怎么做?

+0

COM不支持这一点,VBA运行时通过在需要时创建单个对象并将其保留在周围来模拟它。 [appobject] MIDL属性用于此。这个问题太模糊不清,给我建议,使用[appobject]我猜。 –

回答

0

其实我在这篇文章中发现了如何做到这一点。

http://support.microsoft.com/kb/189133

但新的问题是,它似乎像包含由MIDL规定的功能属性DLLNAME。需要位于该VBA声明语句将搜索的DLL同一个路径的dll文件,即使dll与VBA引用的类型库文件相同。但我想我的原始问题得到了回答。