Compartir a través de


Método Shapes.Range (PowerPoint)

Devuelve un objeto ShapeRange que representa un subconjunto de las formas de una colección Shapes.

Sintaxis

expresión. Intervalo (índice)

expresión Variable que representa un objeto Shapes.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
Index Opcional Variant Las formas individuales que se incluirán en el intervalo. Puede ser un número entero que especifica el número de índice de la forma, una cadena que especifica el nombre de la forma o una matriz que contenga números enteros o cadenas. Si se omite este argumento, el método Range devuelve todos los objetos de la colección especificada.

Valor devuelto

ShapeRange

Comentarios

Aunque puede utilizar el método Range para devolver cualquier número de formas o diapositivas, es más sencillo utilizar el método Item si sólo desea devolver a un único miembro de la colección. Por ejemplo, Shapes(1) es más simple que Shapes.Range(1)y Slides(2) es más simple que Slides.Range(2).

Para especificar una matriz de enteros o cadenas para Index, puede usar la función Array. Por ejemplo, la siguiente instrucción devuelve dos formas especificadas por nombre.

Dim myArray() As Variant, myRange As Object myArray = Array("Oval 4", "Rectangle 5") Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)

Ejemplo:

En este ejemplo se establece la trama de relleno de las formas uno y tres de myDocument.

Set myDocument = ActivePresentation.Slides(1)

myDocument.Shapes.Range(Array(1, 3)).Fill _
    .Patterned msoPatternHorizontalBrick

En este ejemplo se establece el diseño del relleno para las formas denominadas "Oval 4" y "Rectangle 5" de la primera diapositiva.

Dim myArray() As Variant, myRange As Object

myArray = Array("Oval 4", "Rectangle 5")

Set myRange = ActivePresentation.Slides(1).Shapes.Range(myArray)

myRange.Fill.Patterned msoPatternHorizontalBrick

En este ejemplo se establece el diseño del relleno para todas las formas de la primera diapositiva.

ActivePresentation.Slides(1).Shapes.Range.Fill _
    .Patterned Pattern:=msoPatternHorizontalBrick

En este ejemplo se establece el diseño del relleno para la forma uno de la primera diapositiva.

Set myDocument = ActivePresentation.Slides(1)

Set myRange = myDocument.Shapes.Range(1)

myRange.Fill.Patterned msoPatternHorizontalBrick

En este ejemplo se crea una matriz que contiene todas las autoformas de la primera diapositiva, se utiliza para definir un intervalo de formas y, a continuación, se distribuyen todas las formas de dicho intervalo en sentido horizontal.

With myDocument.Shapes

    numShapes = .Count



    'Continues if there are shapes on the slide

    If numShapes > 1 Then

        numAutoShapes = 0

        ReDim autoShpArray(1 To numShapes)

        For i = 1 To numShapes



            'Counts the number of AutoShapes on the Slide

            If .Item(i).Type = msoAutoShape Then

                numAutoShapes = numAutoShapes + 1

                autoShpArray(numAutoShapes) = .Item(i).Name

            End If

        Next



        'Adds AutoShapes to ShapeRange

        If numAutoShapes > 1 Then

            ReDim Preserve autoShpArray(1 To numAutoShapes)

            Set asRange = .Range(autoShpArray)

            asRange.Distribute msoDistributeHorizontally, False

        End If

    End If

End With


Consulte también

Objeto Shapes

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.