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.