1

我想通过使用 word 宏对某个页面或页面范围内的所有图像进行分组,我在文档中对所有图像进行分组的代码,我无法在任何选项中指定页码,有没有办法是吗?如果是,那是什么?

在这里粘贴我的代码:

     ActiveDocument.Shapes.SelectAll
     Selection.ShapeRange.Group.Select

For-each 循环也可能有效,但这不是特定于页面的。

4

1 回答 1

0

请尝试此代码(已测试)

Sub Gropu_Shapes_By_Page()

    Dim SHP As ShapeRange
    Dim PAG As Page
    Dim REC As Rectangle
    Dim i!

    For Each PAG In ActiveWindow.Panes(1).Pages
        PAG.Rectangles(1).Range.Select
        For Each REC In PAG.Rectangles
            If REC.RectangleType = wdShapeRectangle Then
                REC.Range.ShapeRange.Select False
                i = i + 1
            End If
        Next REC
        If i > 1 Then Selection.ShapeRange.Group.Select
        i = 0
    Next PAG


End Sub

如您所知,很难假设每个页面的开始和结束位置,因为它取决于最终版本文档的纸张布局。因此,这里我们假设在布局page中指的是一个。printpreview

编辑一页的子版本 - 请参阅子内的评论。

Sub Gropu_Shapes_for_SinglePage()

    Dim SHP As ShapeRange
    Dim PAG As Page
    Dim REC As Rectangle
    Dim i!

        'your number or variable _
        referring to page number _
        instead of 2 below

    With ActiveWindow.Panes(1).Pages(2)
        .Rectangles(1).Range.Select
        For Each REC In .Rectangles
            If REC.RectangleType = wdShapeRectangle Then
                REC.Range.ShapeRange.Select False
                i = i + 1
            End If
        Next REC
        If i > 1 Then Selection.ShapeRange.Group.Select

    End With

End Sub

如果有人需要,它可以是带有参数的子程序。

于 2013-04-19T07:49:03.927 回答