Propriedade GroupShapes.Range (Excel)
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 GroupShapes .
Parâmetros
Nome | Obrigatório/Opcional | Tipo de dados | Descrição |
---|---|---|---|
Índice | Obrigatório | Variant | As formas individuais a serem incluídas no intervalo. Pode ser um número 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. |
Comentários
Embora você possa usar a propriedade Range para retornar qualquer número de formas, é mais simples usar o método Item se você quiser retornar apenas um único membro da coleção. Por exemplo, Shapes(1)
é mais simples do que Shapes.Range(1)
.
Exemplo
Este exemplo define o padrão de preenchimento para as formas um e três de myDocument.
Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)) _
.Fill.Patterned msoPatternHorizontalBrick
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 arShapes() As Variant
Dim objRange As Object
arShapes = Array("Oval 4", "Rectangle 5")
Set objRange = ActiveSheet.Shapes.Range(arShapes)
No Microsoft Excel, você não pode usar esta propriedade para retornar um objeto ShapeRange com todos os objetos Shape em uma planilha. Em vez disso, use o código a seguir.
Worksheets(1).Shapes.SelectAll ' select all shapes
set sr = Selection.ShapeRange ' create ShapeRange
Este exemplo define o padrão de preenchimento para as formas chamadas Oval 4 e Rectangle 5 no myDocument.
Dim arShapes() As Variant
Dim objRange As Object
Set myDocument = Worksheets(1)
arShapes = Array("Oval 4", "Rectangle 5")
Set objRange = myDocument.Shapes.Range(arShapes)
objRange.Fill.Patterned msoPatternHorizontalBrick
Este exemplo define o padrão de preenchimento para a forma um em myDocument.
Set myDocument = Worksheets(1)
Set myRange = myDocument.Shapes.Range(1)
myRange.Fill.Patterned msoPatternHorizontalBrick
Este exemplo cria uma matriz que contém todas as AutoFormas de myDocument, usa essa matriz para definir um intervalo de formas e distribui todas as formas horizontalmente nesse intervalo.
Set myDocument = Worksheets(1)
With myDocument.Shapes
numShapes = .Count
If numShapes > 1 Then
numAutoShapes = 1
ReDim autoShpArray(1 To numShapes)
For i = 1 To numShapes
If .Item(i).Type = msoAutoShape Then
autoShpArray(numAutoShapes) = .Item(i).Name
numAutoShapes = numAutoShapes + 1
End If
Next
If numAutoShapes > 1 Then
ReDim Preserve autoShpArray(1 To numAutoShapes)
Set asRange = .Range(autoShpArray)
asRange.Distribute msoDistributeHorizontally, False
End If
End If
End With
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.