我正在编写一个 C++ MFC 程序,它使用它们的接口自动化 MS Word 。
从我的应用程序中,我能够打开 MS Word,打开宏窗口,但我需要从组合框中检索所有宏并将它们添加到我的应用程序中,因此稍后用户可以选择他想将哪个宏应用于某些文档。
可以使用 GetProperty 方法进行检索吗?如果可以,你能给我举个例子吗?
您可以使用 Document.VBProject 访问 VBA 代码(访问文档中的宏)。以下是如何使用 VBA/C# 在 word 中执行此操作。您可以使用 C++ 重写该代码。
请注意,MFC 不是使用文字自动化的最简单方法,但您也可以使用 MFC 来实现。当您使用 MFC 进行自动化时,有不止一种方法可用。您可以使用 MFC-only-way(即 90x 的样式,使用对象包装器)来执行此操作,或使用例如#import 指令。
GetProperty 基本上是一个泛型方法,它可以获取它所应用的对象的一些属性,即它不是特定于宏的。
另请注意,最终用户必须启用“信任对 VBA 项目的编程访问”以允许您的代码获取宏(这是 word 安全设置中的一个复选框,默认情况下关闭)。可能是一个表演停止者。