VBA Word-通过对象单步解析文档

VBA Word-通过对象单步解析文档,vba,ms-word,Vba,Ms Word,我正在使用VBA解析大量Word文档,我希望确保它们的结构遵循某些规则(例如,表之间不能有多个段落,表嵌套只能向下一级(即表中可以有一个表,但不能进一步嵌套),等等(这不是一个完整的列表!) 所以我想我会在每个文档中逐步查找“元素”,寻找这些模式,但我一直无法做到这一点。所有循环解决方案似乎都集中在一种类型的对象上,我在这里看不到任何简单的方法。当我看一个文档时,我看到(例如)一个标题,然后是三个段落,然后是一个表格,然后是一个段落,然后是两个表格,依此类推;我希望我的VBA能够以同样的方式逐步

我正在使用VBA解析大量Word文档,我希望确保它们的结构遵循某些规则(例如,表之间不能有多个段落,表嵌套只能向下一级(即表中可以有一个表,但不能进一步嵌套),等等(这不是一个完整的列表!)

所以我想我会在每个文档中逐步查找“元素”,寻找这些模式,但我一直无法做到这一点。所有循环解决方案似乎都集中在一种类型的对象上,我在这里看不到任何简单的方法。当我看一个文档时,我看到(例如)一个标题,然后是三个段落,然后是一个表格,然后是一个段落,然后是两个表格,依此类推;我希望我的VBA能够以同样的方式逐步浏览文档。可能吗

我对Excel VBA非常有经验,但刚刚开始使用Word VBA,因此仍在尝试理解概念和对象模型——请原谅我的无知

[编辑]
最后,我发现实现我想要的最好方法是使用VBA保存为HTML;将结构保存为文档中的状态。然后我可以解析HTML,寻找我想要的结构元素。我同意,这听起来有点迂回,但它相当快,而且很管用。

Word的对象模型并没有为您提供一种按照您所描述的方式进行操作的方法。你能得到的最接近的方法是一次“遍历”所选的一个字符,并测试它是什么类型的东西——它在表中吗?其范围是否包含内联形状?但是这比简单地循环各种类型的集合要复杂得多。而且速度也会慢一些


最好是列一个规则列表,然后为每个规则编码……

非常感谢您的回答,辛迪——我差点放弃了!我想你的汤会管用的,但我同意可能会很慢。最后我转换成了HTM(见我对原始问题的评论)。