Объект ShapeRange (издатель)

Представляет диапазон фигур, представляющий собой набор фигур в документе. Диапазон фигур может содержать всего одну фигуру или все фигуры в документе. Для создания диапазона фигур можно указать любые фигуры, выбранные из всех фигур в документе или всех фигур в выделенном фрагменте. Например, можно создать коллекцию ShapeRange , содержащую первые три фигуры в документе, все выбранные фигуры в документе или все фигуры свободной формы в документе.

Примечание.

Большинство операций, которые можно выполнить с объектом Shape , можно также выполнить с объектом ShapeRange , который содержит только одну фигуру. Некоторые операции, выполняемые с объектом ShapeRange , содержащим несколько фигур, вызывают ошибку.

Замечания

Используйте Shapes.Range (index), где index — это номер индекса фигуры или массив, содержащий номера индексов фигур, чтобы вернуть коллекцию ShapeRange , представляющую набор фигур в публикации. Используйте функцию Array в Visual Basic для создания массива чисел индекса.

Хотя для возврата любого количества фигур можно использовать метод Shapes.Range , проще использовать метод Item , если нужно вернуть только один член коллекции. Например, фигуры (1) проще , чем Shapes.Range (1).

Используйте Selection.ShapeRange (index), где index — это номер индекса фигуры, чтобы вернуть объект Shape , представляющий фигуру в выделенном фрагменте.

Используйте метод Выравнивание , Метод Распространения или ZOrder для размещения набора фигур относительно друг друга или относительно документа.

Используйте методы Group , Regroup или Ungroup для создания и работы с одной фигурой, сформированной из диапазона фигур. Свойство GroupItems возвращает объект GroupShapes , который представляет все фигуры, сгруппированные в одну фигуру.

Пример

В следующем примере задается шаблон заливки для фигур от одного до трех в активной публикации.

Sub ChangeFillPattern() 
    ActiveDocument.Pages(1).Shapes.Range(Array(1, 2, 3)) _ 
        .Fill.PresetGradient Style:=msoGradientDiagonalDown, _ 
        Variant:=1, PresetGradientType:=msoGradientHorizon 
End Sub

В следующем примере выбираются первые две фигуры на первой странице активной публикации, а затем устанавливается заливка для первой фигуры в выделенном фрагменте.

Sub ChangeFillForShapeRange() 
    ActiveDocument.Pages(1).Shapes.Range(Array(1, 2)).Select 
    Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0) 
End Sub

В этом примере выбираются все фигуры на первой странице активной публикации, а затем добавляется и форматирует текст во второй фигуре в диапазоне.

Sub SelectShapesOnPageOne() 
    ActiveDocument.Pages(1).Shapes.Range.Select 
    With Selection.ShapeRange(2).TextFrame.TextRange 
        .Text = "Shape Number 2" 
        .ParagraphFormat.Alignment = pbParagraphAlignmentCenter 
        .Font.Size = 25 
    End With 
End Sub

В этом примере задается диапазон фигур, выравнивание по левому краю и вертикальное распределение фигур на странице.

Sub AlignDistributeShapes() 
    Dim rngShapes As ShapeRange 
    Set rngShapes = ActiveDocument.Pages(1).Shapes.Range 
 
    With rngShapes 
        .Align AlignCmd:=msoAlignLefts, RelativeTo:=msoFalse 
        .Distribute DistributeCmd:=msoDistributeVertically, RelativeTo:=msoTrue 
    End With 
End Sub

В этом примере задается диапазон фигур, выравнивание по левому краю и вертикальное распределение фигур на странице.

Sub GroupShapes() 
    Dim rngShapes As ShapeRange 
    Set rngShapes = ActiveDocument.Pages(1).Shapes.Range 
    rngShapes.Group 
 
    rngShapes(1).Fill.OneColorGradient _ 
        Style:=msoGradientFromCenter, _ 
        Variant:=2, Degree:=1 
End Sub

Методы

Свойства

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.