遍历Word中的页面并查找包含图像的页面

时间:2013-08-02 18:56:38

标签: vba ms-word word-vba

我想遍历word文档中的每个页面,检查该页面是否包含图像,并对该页面执行某些操作(设置页边距并插入中断)。

For Each Page in Document.Pages
   If Page.ContainsImage Then
      Page.TopMargin = 0
      DoOtherStuff
   End If
Next

1 个答案:

答案 0 :(得分:4)

Document有一个代表所有形状的Shapes集合。每个Shape都有一个Anchor,我们可以使用它来获取形状页面的TopMargin和其他属性:

Sub JiggleAllShapes()
    Dim shp As Shape

    For Each shp In ActiveDocument.Shapes
        shp.Anchor.Paragraphs(1).Range.PageSetup.TopMargin = 0
    Next shp
End Sub

我们可以从Anchor获取页码:

shp.Anchor.Information(wdActiveEndPageNumber)

有一个Pages集合,但它没有那么有用的IMO:

Sub WhatAboutPages()
    Dim pge As Page

    For Each pge In ActiveDocument.ActiveWindow.Panes(1).Pages
        'Debug.Print pge.NothingUsefulHere
    Next pge
End Sub

使用此方法,您必须深入研究Rectangles集合并使用RectangleType尝试确定当前Rectangle是否为图像。