首页 > 解决方案 > 遍历 Word 段落中的文本和图像

问题描述

我想遍历 Word 文档段落中的“对象”。假设这一段只包含字符和图像。

我找到了一种遍历字符的方法:

For Each lCharacter In pParagraph.Range.Characters
   ...
Next

我还找到了一种遍历图像的方法:

For Each lInlineShape In pParagraph.Range.InlineShapes
   ...
Next

不幸的是,这些循环不允许我知道图像在文本中的位置。

我想要的是按顺序迭代每个“对象”(角色、图像或其他东西),找到它的类型并相应地对其进行一些处理。

有没有办法这样做?

(其实我找到了一个线索:好像第一个循环在有图片的时候给了我一个字符“/”……但是我没办法检查那个“/”是代表那里有图片还是如果文本实际上包含字符“/”)。

标签: vbams-word

解决方案


您必须通过某种对象类别(文档或文档中的段落)将这些内容分解为单独的查询。

您可以在文档级别查找 InlineShapes ...

Dim iShp As Word.InlineShape
For Each iShp In ActiveDocument.InlineShapes
    If iShp.Type = wdInlineShapePicture Then
        'do something
    End If
Next

或者,如果您想以主要群体的身份查看段落,那么这样的事情将起作用,您可以在范围内包含查看字符...

Dim iShp As Word.InlineShape, oPara As Word.Paragraph
Dim chr As Variant
For Each oPara In ActiveDocument.Paragraphs
    For Each iShp In oPara.Range.InlineShapes
        If iShp.Type = wdInlineShapePicture Then
            'do something
        End If
    Next
    For Each chr In oPara.Range.Characters
        Debug.Print chr
    Next
Next

推荐阅读