Compartilhar via


Objeto Shapes (Excel)

Uma coleção de todos os objetos Shape na planilha especificada.

Comentários

Cada objeto Shape representa um objeto na camada de desenho, como uma AutoForma, uma forma livre, um objeto OLE ou uma imagem.

Observação

Se você quiser trabalhar com um subconjunto das formas em um documento, por exemplo, para fazer algo apenas com o AutoShapes no documento ou apenas com as formas selecionadas, você deve construir uma coleção ShapeRange que contenha as formas com as quais deseja trabalhar.

Exemplo

Use a propriedade Shapes do objeto Worksheet para retornar a coleção Shapes . O exemplo a seguir seleciona todas as formas no myDocument.

Observação

Se você quiser fazer algo (como excluir ou definir uma propriedade) para todas as formas em uma planilha ao mesmo tempo, selecione todas as formas e use a propriedade ShapeRange na seleção para criar um objeto ShapeRange que contenha todas as formas na planilha e, em seguida, aplique a propriedade ou método apropriado ao objeto ShapeRange .

Set myDocument = Worksheets(1) 
myDocument.Shapes.SelectAll

Use Shapes (index), em que o índice é o nome da forma ou o número de índice, para retornar um único objeto Shape . O exemplo a seguir define o preenchimento para um sombreamento predefinido para a forma um em myDocument.

Set myDocument = Worksheets(1) 
myDocument.Shapes(1).Fill.PresetGradient _ 
 msoGradientHorizontal, 1, msoGradientBrass

Use Range (index), em que index é o nome da forma ou número de índice ou uma matriz de nomes de forma ou números de índice, para retornar uma coleção ShapeRange que representa um subconjunto da coleção Shapes. O exemplo a seguir define o padrão de preenchimento para as formas um e três no myDocument.

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

Um controle ActiveX em uma planilha tem dois nomes: o nome da forma que contém o controle que você pode ver na caixa Name ao exibir a planilha e o nome de código para o controle, que pode ser visto na célula à direita do (Name) na janela de propriedades. Quando você adiciona um controle em uma planilha pela primeira vez, nome da forma e nome do código correspondem. No entanto, se você alterar o nome da forma ou o nome do código, o outro não será alterado automaticamente para corresponder.

Você pode usar o nome do código de um controle nos nomes de seus procedimentos de evento. Entretanto, quando você retornar um controle da coleção Shapes ou OLEObjects para uma planilha, deverá usar o nome da forma, e não o nome do código, para fazer referência ao controle por nome. Por exemplo, suponha que você adicione uma caixa de seleção a uma planilha e que o nome da forma padrão e o nome do código padrão sejam CaixadeSeleção1. Se você alterar o nome do código do controle digitando chkFinished ao lado de (Nome) na janela Propriedades, deverá usar chkFinished nos nomes de procedimentos de eventos, mas ainda aterá de usar CaixadeSeleção1 para retornar o controle da coleção Shapes ou OLEObject, como mostrado no exemplo a seguir.

Private Sub chkFinished_Click() 
 ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1 
End Sub

Métodos

Propriedades

Confira também

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.