2010-03-02 55 views
7

我需要使用Microsoft.Office.Interop.Word命名空间来提取Word文档是否包含宏以及哪些宏。与其他.Net类的文档相比,此名称空间的MSDN文档没有提供太多信息。 我在哪里可以获得关于这个命名空间的更多信息(例子,完整的文档等)。我已经在Google和SO上搜索过,但没有太多信息。Microsoft.Office.Interop.Word文档

+0

什么版本的Office? – 2010-03-05 00:19:26

+0

@ rold2007:只是想检查下面的答案是否回答你的问题。 – 2010-03-15 15:22:49

+0

@Otaku:到目前为止的三个答案都很有趣,但是这个应用程序的开发还没有开始,所以我不知道我需要开发的是否可行。当我的测试完成后,我会回到这里。 – rold2007 2010-03-17 04:46:06

回答

0

Microsoft.Vbe.Interop是VBA的命名空间。 (VBE是Visual Basic for Application Extensibility 5.3。)帮助您搜索的关键字是VBProject,VBComponentCodeModule

MSDN搜索VBProject会让你开始。 http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8

以下文章适用于VBA,但很容易转换。 WD2000:示例宏返回宏和过程名称http://support.microsoft.com/kb/262961

+0

期望出现异常“对Visual Basic项目的编程访问不可信”。当你尝试这个。谷歌错误消息了解更多信息。 (你也会发现一些人试图做同样的事情!) – MZB 2010-03-20 16:18:49

+0

你可以在“受信任的发布者”选项卡上通过宏安全来更改它。此外,使用适当的宏安全设置向项目添加证书将绕过此消息。 – AMissico 2010-03-20 17:19:10

-1

大部分文档位于Microsoft Word附带的VBA帮助文件中 - 对于Microsoft Word 2003,请查找文件VBAWD10.CHM。同时检查Microsoft Office Visual Basic参考(VBAOF11.CHM

上面的10和11是Word和Office版本号 - 因此您的里程将根据您安装的Word版本而有所不同。此外,在所有版本的Word中,命名并不一致,因此搜索VBA * .CHM的所有内容可能会提升您所需的大部分文档。

这些将回答有关Word API的大部分问题。

无法看到在打开的文档或模板中查找宏列表的显而易见的方式,但是...如果您找到方法,请添加注释以解决此问题,因为我有兴趣知道。 (请注意,每次调用都会在使用Word互操作时引发异常,如果Word有任何模式对话框打开,您将收到一个异常,例如,相应程序)。

+0

@unknown - 如果你要对某件事进行倒票,那么为什么答案没有帮助的线索会很有用。 (完成了与@ rold2007非常相似的内容并查找了相同的文档,我很想知道是否有更好的信息来源)。 – MZB 2010-03-20 16:12:27

+0

正如@AMISSico所示,Application.VBE属性可能是需要查看的地方。 – MZB 2010-03-20 16:19:51

+0

只有一个猜测,因为这个问题只有一个答案。我想投票是因为你引用Office和Word对象模型引用而不是VBA/VBE引用。此外,也许是因为你正在引用VBA而不是.NET命名空间。 – AMissico 2010-03-20 17:28:08

3

正确的答案是检查Document.HasVBProject属性。

引用来自备注部分:“该属性在编程确定文档是否需要保存为支持宏的文件格式时最为有用,如果以其他格式保存,文档中包含的宏和代码项目可能会迷路了。“

相关问题