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

时间:2015-05-28 07:19:25

标签: vba ms-word word-vba

我正在使用VBA来解析一大堆Word文档,我想确保它们的结构遵循一定的规则(例如,表之间不能有多个段落,表格嵌套只能在一个层次上下降(即你可以在一个表中有一个表,但没有进一步的嵌套),等等(这不是一个完整的列表!)。)

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

我在Excel VBA方面非常有经验,但刚开始使用Word VBA,所以仍然试图理解概念和对象模型 - 请原谅我的无知!

[编辑] 最后我发现实现我想要的最好方法是使用VBA来另存为HTML;这样可以保存文档中的结构。然后,我可以解析HTML,寻找我想要的结构元素。听起来有点迂回,我同意,但它很快就能解决问题。

1 个答案:

答案 0 :(得分:0)

Word的对象模型没有为您提供您所描述的方法。你可能得到的最接近的是一次“走”选择一个字符并测试它的类型 - 它在表中吗?它的范围是否包含InlineShapes?但是,与简单地循环各种集合相比,这将需要更多的代码工作。而且它也会变慢。

最好是列出规则,然后为每个规则编写代码......