Compartilhar via


Método Shapes.Range (PowerPoint)

Retorna um objeto ShapeRange que representa um subconjunto das formas em uma coleção Shapes .

Sintaxe

expressão. Intervalo (Índice)

expressão Uma variável que representa um objeto Formas.

Parâmetros

Nome Obrigatório/Opcional Tipo de dados Descrição
Índice Opcional Variant As formas individuais que devem ser incluídas no intervalo. Pode ser um inteiro que especifica o número de índice da forma, uma cadeia de caracteres que especifica o nome da forma ou uma matriz que contém as cadeias de caracteres ou números inteiros. Se esse argumento for omitido, o método Range retorna todos os objetos na coleção especificada.

Valor de retorno

ShapeRange

Comentários

Embora você possa usar o método Range para retornar qualquer número de formas ou slides, é mais simples usar o método Item se desejar retornar um único membro da coleção. Por exemplo, Shapes(1) é mais simples que Shapes.Range(1), e Slides(2) é mais simples que Slides.Range(2).

Para especificar uma matriz de números inteiros ou cadeias de caracteres para o índice, você pode usar a função Array. Por exemplo, a instrução a seguir retorna duas formas especificadas por nome.

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

Exemplo

Este exemplo define o padrão de preenchimento para as formas um e três de myDocument.

Set myDocument = ActivePresentation.Slides(1)

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

Este exemplo define o padrão de preenchimento para as formas chamadas "Oval 4" e "Rectangle 5" do primeiro slide.

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

Este exemplo define o padrão de preenchimento para todas as formas do primeiro slide.

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

Este exemplo define o padrão de preenchimento para a forma um do primeiro slide.

Set myDocument = ActivePresentation.Slides(1)

Set myRange = myDocument.Shapes.Range(1)

myRange.Fill.Patterned msoPatternHorizontalBrick

Este exemplo cria uma matriz que contém todas as AutoFormas do primeiro slide, usa essa matriz para definir um intervalo de formas e, em seguida, distribui todas as formas nesse intervalo horizontalmente.

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


Confira também

Objeto Shapes

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.