Apagar e Criar Formas Imagens com Excel VBA
Especialista em Excel

Neste artigo você aprenderá como inserir imagens no Excel com VBA.
Apagar e Criar Formas Imagens com Excel VBA
Veja neste artigo como apagar formas no Excel e criar novas formas no Excel utilizando VBA.
No exemplo realizaremos a comparação através de uma forma de uma seta, que demonstra se o período anterior ficou acima ou abaixo do ano anterior.
Este exemplo foi adaptado do livro VBA e Macros para Microsoft Office 2007 de Bill Jelen e Tracy Syrstad e serve como o estudo de uma macro que cria um desenho de uma seta de acordo com o mês selecionado na planilha.

Criar Formas de Imagens com VBA no Excel
No nosso exemplo estamos criando setas automaticamente conforme a mudança dos valores.
Caso o valor do ano seguinte for superior à do ano anterior a seta será verde e pra cima.
E caso o valor de 2010 for menor que 2009 então a forma será para baixo com a cor vermelha.
Abaixo o código fonte utilizado na macro que cria o desenho:
ActiveSheet.Shapes.AddShape(ArrowDegree, 330.25, 60.5, 30, 20).Select
With Selection.ShapeRange
With .Fill
.Visible = msoTrue
.Solid
.ForeColor.SchemeColor = ArrowColor
.Transparency = 0#
End With
With .Line
.Weight = 0.75
.DashStyle = msoLineSingle
.Style = msoLineSingle
.Transparency = 0#
.Visible = msoTrue
.ForeColor.SchemeColor = 64
.BackColor.RGB = RGB(255, 255, 255)
End With
Range("G3").Select 'Posiciona a seleção de volta na lista suspensa
End With
Entendendo o código acima:
O código ActiveSheet.Shapes.AddShape(ArrowDegree, 330.25, 60.5, 30, 20).Select cria uma forma no Excel
AddShape recebe então o tipo da forma, no caso ArrowDegree é o tipo de forma que foi inserido e então são definidas as propriedades de altura, largura, posição na altura e na esquerda.
Para outras formas basta gravar uma macro e criar uma outra imagem e pegar o nome correspondente, como no caso do ArrowDegree.
As propriedades que seguem realizam as configurações quanto à imagem.
Você pode também criar a sua imagem com o gravador de macros e deois alterar estas propriedades conforme os parâmetros da sua imagem.

Como Deletar Formas de Imagens com VBA Excel
Para deletar as imagens foi utilizado o seguinte código VBA Excel
For Each sh In ActiveSheet.Shapes
If sh.Name Like "*Arrow*" Then
sh.Delete
End If
Next sh
No código acima veja que foi realizado um loop por objetos usando For Each para que verifique os objetos de formas e é utilizado então o sh.Delete para que o shape seja deletado.
Para o loop foram utilizados Activesheet.Shapes com o for each, mas veja também que fo iutilizado sh.name like "*Arrow*" para que verifique se é aquele tipo de objeto Arrow no caso.
Download da Planilha
Para realizar o download da planilha basta clicar no botão abaixo e preencher o nome e e-mail para areceber o arquivo imediatamente.
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90





