2013-08-02 17 views
1

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

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

在Word文档中有一些图像类型 - 嵌入一个文本('InlineShapes')和第二个浮动('Shapes')。你在文档中拥有哪一个? –

+0

我的文档中的大部分图像都是(形状)。 –

回答

2

一个DocumentShapes集合代表所有的形状。每个形状具有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是否为图像。

+0

工作对我很好。 –

+0

+1用于回答问题和所需问题。页面迭代对我来说非常合适。谢谢 – Praesagus