【发布时间】:2018-12-22 06:12:54
【问题描述】:
这与关于以编程方式添加 VBA 项目引用的老问题有所不同:有没有办法以编程方式添加引用,但是...没有 VBE 或对 VBIDE 的现有引用..?
许多 Microsoft 应用程序都有内置的应用程序类 VBE,并具有自己的引用集合:Application.VBE.ActiveVBProject.References。这包括 Access、Excel、Word、PowerPoint、Visio,可能还有许多其他。但是某些 Microsoft 应用程序没有 VBE,例如 Outlook 和 Publisher。此外,还有多种带有 VBA 的 3rd-party 软件包,例如 AutoCad 和 Corel Draw,但它们是否具有 VBE 类尚不清楚。
对于那些没有 VBE 的应用程序,是否有任何完全编程的方式来添加对 VBIDE.. 的引用? (假设它在系统上)
我愿意接受除SendKeys 之外的任何想法。我有过在角色级别编辑文档文件的想法。例如,我确定如果我深入研究 Excel 文件的 XML,我会找到存储 VBA 引用的标签。对于 Access,它将是 SaveToText 和 LoadFromText,然后挖掘文本文件。但对于其他应用程序,我对它们的文件结构一无所知或几乎一无所知。
【问题讨论】:
-
很确定这将是一个安全漏洞。需要明确启用对 VBIDE 可扩展性库的编程访问...至少在 Office 中。
-
你到底想完成什么?
-
另外.. Outlook 是 VBE 主机应用程序。 OneNote 不是。
-
我建议您考虑改用后期绑定。这将解决您在参考文献中可能遇到的问题,而且花费更少。
-
> 可能不会。 VBA 代码以 二进制 文件格式存储在 Office Open XML zip 包中。