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.
Baixe a planilhaMarcos Rieper
Curso Excel Completo – Do Básico ao VBA
Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo: