我需要使用Microsoft.Office.Interop.Word命名空间来提取Word文档是否包含宏以及哪些宏。与其他.Net类的文档相比,此名称空间的MSDN文档没有提供太多信息。 我在哪里可以获得关于这个命名空间的更多信息(例子,完整的文档等)。我已经在Google和SO上搜索过,但没有太多信息。Microsoft.Office.Interop.Word文档
回答
在这里你可以了解更多有关这对Office 2007/Office 2010的:http://msdn.microsoft.com/en-us/library/dd925808.aspx
Microsoft.Vbe.Interop
是VBA的命名空间。 (VBE是Visual Basic for Application Extensibility 5.3。)帮助您搜索的关键字是VBProject
,VBComponent
和CodeModule
。
MSDN搜索VBProject会让你开始。 http://social.msdn.microsoft.com/Search/en-US?query=VBProject&ac=8。
以下文章适用于VBA,但很容易转换。 WD2000:示例宏返回宏和过程名称在http://support.microsoft.com/kb/262961。
大部分文档位于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有任何模式对话框打开,您将收到一个异常,例如,相应程序)。
@unknown - 如果你要对某件事进行倒票,那么为什么答案没有帮助的线索会很有用。 (完成了与@ rold2007非常相似的内容并查找了相同的文档,我很想知道是否有更好的信息来源)。 – MZB 2010-03-20 16:12:27
正如@AMISSico所示,Application.VBE属性可能是需要查看的地方。 – MZB 2010-03-20 16:19:51
只有一个猜测,因为这个问题只有一个答案。我想投票是因为你引用Office和Word对象模型引用而不是VBA/VBE引用。此外,也许是因为你正在引用VBA而不是.NET命名空间。 – AMissico 2010-03-20 17:28:08
没有好的文档。唯一的资源是MSDN(安静的坏)和一些博客。 也许你可以在这里找到一些信息:http://blogs.msdn.com/mshneer/
正确的答案是检查Document.HasVBProject属性。
引用来自备注部分:“该属性在编程确定文档是否需要保存为支持宏的文件格式时最为有用,如果以其他格式保存,文档中包含的宏和代码项目可能会迷路了。“
- 1. 如何使用Microsoft.Office.Interop.Word创建.docx文档?
- 2. 如何不使用microsoft.office.interop.word保存文档
- 3. Microsoft.Office.Interop.Word - 覆盖当前文档中的文本,如何阻止它?
- 4. 在SharePoint 2013中将Word文档转换为PDF使用Microsoft.Office.Interop.Word
- 5. 如何使用Microsoft.Office.Interop.Word创建邮件标签Word文档?
- 6. 使用.Net中的Microsoft.Office.Interop.Word将文档导出为HTML?
- 7. C#Microsoft.Office.Interop.Word
- 8. 的Microsoft.Office.Interop.Word OMath
- 9. c#,Microsoft.Office.Interop.Word - 文档对象内容中的索引和文档中的实际位置之间的差异
- 10. 访问和填充Word 2007文档模板使用C#和Microsoft.Office.Interop.Word快速部件?
- 11. 如何检测Word文档中使用Microsoft.Office.Interop.Word C#4.0中的空白段落?
- 12. 使用Microsoft.office.Interop.Word创建Word文件
- 13. Microsoft.Office.Interop.Word如何停止文件打开
- 14. DOCX to RTF without Microsoft.Office.Interop.Word
- 15. 使用Microsoft.Office.Interop.Word程序集
- 16. 如何使用的Microsoft.Office.Interop.Word
- 17. 在asp.net中使用Microsoft.Office.Interop.Word
- 18. C#Microsoft Word自动化Microsoft.Office.Interop.Word
- 19. 警告CS0467使用 'Microsoft.Office.Interop.Word._Document.Close'
- 20. 更改事件中的Microsoft.Office.Interop.Word
- 21. 未找到Microsoft.Office.Interop.Word参考
- 22. Microsoft.Office.Interop.Word版本11与VS2010?
- 23. 无法加载的Microsoft.Office.Interop.Word
- 24. 不能使用的Microsoft.Office.Interop.Word
- 25. 如何使用Microsoft.Office.Interop.Word获取Word文档中的形状或图片中的文本?
- 26. 查找文本MS字中使用Microsoft.Office.Interop.Word指定字体在c#
- 27. 如何从DOC文件中提取图像而不使用Microsoft.Office.Interop.Word
- 28. 如何使用Microsoft.Office.Interop.Word区分Microsoft Word文件中的标题?
- 29. 使用Microsoft.Office.Interop.Word解析表,只从第一列获取文本?
- 30. 使用Microsoft.Office.Interop.Word时强加页码
什么版本的Office? – 2010-03-05 00:19:26
@ rold2007:只是想检查下面的答案是否回答你的问题。 – 2010-03-15 15:22:49
@Otaku:到目前为止的三个答案都很有趣,但是这个应用程序的开发还没有开始,所以我不知道我需要开发的是否可行。当我的测试完成后,我会回到这里。 – rold2007 2010-03-17 04:46:06