Compartir a través de


Objeto ShapeRange (Publisher)

Representa un intervalo de formas, que es un conjunto de formas de un documento. Un intervalo de formas puede contener una o varias formas, o incluso todas las formas del documento. Puede incluir las formas que desee(elegidas entre todas las formas del documento o todas las formas de la selección) para construir un intervalo de formas. Por ejemplo, podría construir una colección ShapeRange que contenga las tres primeras formas en un documento, todas las formas seleccionadas o todas las formas libres de un documento.

Nota:

[!NOTA] La mayoría de las operaciones que se pueden hacer con un objeto Shape, también puede realizarlas con un objeto ShapeRange que contiene sólo una forma. Algunas operaciones, cuando se realizan en un objeto ShapeRange que contiene más de una forma, provocan un error.

Observaciones

Use Shapes.Range (index), donde index es el número de índice de la forma o una matriz que contiene números de índice de formas, para devolver una colección ShapeRange que representa un conjunto de formas en una publicación. Use la función Array de Visual Basic para construir una matriz de números de índice.

Aunque puede usar el método Shapes.Range para devolver cualquier número de formas, es más sencillo usar el método Item si desea devolver solo un único miembro de la colección. Por ejemplo, Shapes (1) es más sencillo que Shapes.Range (1).

Use Selection.ShapeRange (index), donde index es el número de índice de la forma, para devolver un objeto Shape que representa una forma dentro de una selección.

Use el método Align , el método Distribute o el método ZOrder para colocar un conjunto de formas relativas entre sí o en relación con el documento.

Use el método Group , el método Regroup o el método Ungroup para crear y trabajar con una sola forma formada a partir de un intervalo de formas. La propiedad GroupItems devuelve el objeto GroupShapes , que representa todas las formas agrupadas para formar una forma.

Ejemplo

En el ejemplo siguiente se establece la trama de relleno para las formas uno a tres de la publicación activa.

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

En el siguiente ejemplo se selecciona las dos primeras formas en la primera página de la publicación activa y, a continuación, Establece el relleno de la primera forma de la selección.

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

En este ejemplo se seleccionan todas las formas de la primera página de la publicación activa y, a continuación, se agrega y da formato al texto de la segunda forma del intervalo.

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

Este ejemplo especifica un intervalo de formas y alinea a la izquierda y distribuye verticalmente las formas en la página.

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

Este ejemplo especifica un intervalo de formas y alinea a la izquierda y distribuye verticalmente las formas en la página.

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

Métodos

Propiedades

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.