VBA Guia para Gráficos e Diagramas

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on June 30, 2023

Os diagramas e os gráficos do Excel são usados para exibir dados visualmente. Neste tutorial, abordaremos como usar o VBA para criar e manipular gráficos e elementos de gráficos.

É possível criar gráficos incorporados em uma planilha ou gráficos em suas próprias planilhas de gráficos.

Criação de um Gráfico Incorporado Usando o VBA

Temos o intervalo A1:B4 que contém os dados de origem, mostrados abaixo:

tabela produtos vendas

Você pode criar um gráfico usando o método ChartObjects.Add. O código a seguir criará um gráfico incorporado na planilha:

Sub CriarGraficoIncorporadoUsandoChartObject()

Dim GraficoIncorporado As ChartObject

Set GraficoIncorporado = Sheets("Planilha1").ChartObjects.Add(Left:=180, Width:=300, Top:=7, Height:=200)
GraficoIncorporado.Chart.SetSourceData Source:=Sheets("Planilha1").Range("A1:B4")

End Sub

O resultado é:

exemplo grafico vendas

Você também pode criar um gráfico usando o método Shapes.AddChart. O código a seguir criará um gráfico incorporado na planilha:

Sub CriarGraficoIncorporadoUsandoShapesAddChart()

Dim GraficoIncorporado As Shape

Set GraficoIncorporado = Sheets("Planilha1").Shapes.AddChart
GraficoIncorporado.Chart.SetSourceData Source:=Sheets("Planilha1").Range("A1:B4")

End Sub

Especificação de um Tipo de Gráfico Usando o VBA

Temos o intervalo A1:B5 que contém os dados de origem, mostrados abaixo:

tabela vendas regiao

Você pode especificar um tipo de gráfico usando a propriedade ChartType. O código a seguir criará um gráfico de pizza na planilha, já que a propriedade ChartType foi definida como xlPie:

Sub EspecificarUmTipoDeGrafico()

Dim chrt As ChartObject

Set chrt = Sheets("Planilha1").ChartObjects.Add(Left:=180, Width:=270, Top:=7, Height:=210)
chrt.Chart.SetSourceData Source:=Sheets("Planilha1").Range("A1:B5")
chrt.Chart.ChartType = xlPie

End Sub

O resultado é:

grafico vendas regiao

Esses são alguns dos tipos de gráficos populares que geralmente são especificados, embora existam outros:

  • xlArea
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlSurface
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Adição do Título do Gráfico Usando VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

grafico sem titulo

Primeiro, você precisa adicionar um título de gráfico usando o método Chart.SetElement e, em seguida, especificar o texto do título do gráfico definindo a propriedade ChartTitle.Text.

O código a seguir mostra como adicionar um título de gráfico e especificar o texto do título do Active Chart:

Sub AdicionarDefinirUmTituloDeGrafico()

ActiveChart.SetElement (msoElementChartTitleAboveChart)
    ActiveChart.ChartTitle.Text = "As Vendas do Produto"
    
End Sub

O resultado é:

inserir titulo grafico

Observação: Você deve selecionar o gráfico primeiro para torná-lo o Active Chart e poder usar o objeto ActiveChart em seu código.

Alteração da Cor de Fundo do Gráfico Usando o VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

grafico pizza produto

Você pode alterar a cor de fundo de todo o gráfico definindo a propriedade RGB do objeto FillFormat do objeto ChartArea. O código a seguir dará ao gráfico uma cor de fundo laranja-claro:

Sub AdicionarCorDeFundoAoGrafico()

ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)

End Sub

O resultado é:

cor fundo alterada

Você também pode alterar a cor de fundo de todo o gráfico definindo a propriedade ColorIndex do objeto Interior do objeto ChartArea. O código a seguir dará ao gráfico uma cor de fundo laranja:

Sub AdicionarCorDeFundoInteriorDoGrafico()

ActiveChart.ChartArea.Interior.ColorIndex = 40

End Sub

O resultado é:

nova cor fundo escura

Observação: A propriedade ColorIndex permite que você especifique uma cor com base em um valor de 1 a 56, extraído da paleta predefinida. Para ver quais valores representam as diferentes cores, clique aqui.

Como Alterar a Cor da Área de Plotagem do Gráfico Usando o VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

inserir titulo grafico

Você pode alterar a cor de fundo apenas da área de plotagem do gráfico, definindo a propriedade RGB do objeto FillFormat do objeto PlotArea. O código a seguir dará à área de plotagem do gráfico uma cor de fundo verde-claro:

Sub AlterandoCorAreaDePlotagem()

ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB(208, 254, 202)
    
End Sub

O resultado é:

cor area plotagem

Adição de uma legenda usando VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

grafico sem legenda

Você pode adicionar uma legenda usando o método Chart.SetElement. O código a seguir adiciona uma legenda à esquerda do gráfico:

Sub AdicionarLegenda()

ActiveChart.SetElement (msoElementLegendLeft)

End Sub

O resultado é:

grafico com legenda

Você pode especificar a posição da legenda das seguintes maneiras:

  • msoElementLegendLeft – exibe a legenda no lado esquerdo do gráfico.
  • msoElementLegendLeftOverlay – sobrepõe a legenda no lado esquerdo do gráfico.
  • msoElementLegendRight – exibe a legenda no lado direito do gráfico.
  • msoElementLegendRightOverlay – sobrepõe a legenda no lado direito do gráfico.
  • msoElementLegendBottom – exibe a legenda na parte inferior do gráfico.
  • msoElementLegendTop – exibe a legenda na parte superior do gráfico.

Adição de Rótulos de Dados Usando o VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

grafico sem legenda

Você pode adicionar rótulos de dados usando o método Chart.SetElement. O código a seguir adiciona rótulos de dados à extremidade interna do gráfico:

Sub AdicionarRotuloDeDados()

ActiveChart.SetElement msoElementDataLabelInsideEnd

End Sub

O resultado é:

grafico com rotulos dados

Você pode especificar como os rótulos de dados são posicionados das seguintes maneiras:

  • msoElementDataLabelShow – exibe rótulos de dados.
  • msoElementDataLabelRight – exibe os rótulos de dados à direita do gráfico.
  • msoElementDataLabelLeft – exibe os rótulos de dados à esquerda do gráfico.
  • msoElementDataLabelTop – exibe rótulos de dados na parte superior do gráfico.
  • msoElementDataLabelBestFit – determina o melhor ajuste.
  • msoElementDataLabelBottom – exibe rótulos de dados na parte inferior do gráfico.
  • msoElementDataLabelCallout – exibe rótulos de dados como um texto explicativo.
  • msoElementDataLabelCenter – exibe rótulos de dados no centro.
  • msoElementDataLabelInsideBase – exibe rótulos de dados na base interna.
  • msoElementDataLabelOutSideEnd – exibe rótulos de dados na extremidade externa do gráfico.
  • msoElementDataLabelInsideEnd – exibe rótulos de dados na extremidade interna do gráfico.

Adição de um Eixo X e de um Título no VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

vendas por regiao

Você pode adicionar um eixo X e um título do eixo X usando o método Chart.SetElement. O código a seguir adiciona um eixo X e um título de eixo X ao gráfico:

Sub AdicionarEixoXETituloDoEixo()

With ActiveChart
.SetElement msoElementPrimaryCategoryAxisShow
.SetElement msoElementPrimaryCategoryAxisTitleHorizontal
End With


End Sub

O resultado é:

adicionado titulo eixo

Adição de um Eixo Y e de um Título no VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

grafico sem eixo y

Você pode adicionar um eixo Y e um título do eixo Y usando o método Chart.SetElement. O código a seguir adiciona um eixo Y e um título de eixo Y ao gráfico:

Sub AdicionarEixoYETituloDoEixo()

With ActiveChart
.SetElement msoElementPrimaryValueAxisShow
.SetElement msoElementPrimaryValueAxisTitleHorizontal
End With
End Sub

O resultado é:

adicionar titulo eixo y

Alterar o Formato Numérico de um Eixo

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

eixo formato original

Você pode alterar o formato numérico de um eixo. O código a seguir altera o formato numérico do eixo y para moeda:

Sub AlterarFormatoDoNumero()

ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"

End Sub

O resultado é:

numero formato moeda eixo

Alterar a Formatação da Fonte em um Gráfico

Temos o seguinte gráfico selecionado na planilha, conforme mostrado abaixo:

eixo formato original

Você pode alterar a formatação da fonte de todo o gráfico consultando o objeto de fonte e alterando seu nome, espessura e tamanho. O código a seguir altera o tipo, a espessura e o tamanho da fonte de todo o gráfico.

Sub MudarFormatacaoDaFonte()

With ActiveChart


.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman"
.ChartArea.Format.TextFrame2.TextRange.Font.Bold = True
.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14

End With

End Sub

O resultado é o seguinte:

alterando fonte tamanho negrito

Exclusão de um Gráfico Usando VBA

Temos um gráfico selecionado na planilha, conforme mostrado abaixo:

eixo formato original

Podemos usar o código a seguir para excluir esse gráfico:

Sub ApagarGrafico()

ActiveChart.Parent.Delete

End Sub

Referência à Coleção ChartObjects

Você pode acessar todos os gráficos incorporados em sua planilha ou pasta de trabalho consultando a coleção ChartObjects. Temos dois gráficos na mesma planilha, mostrados abaixo:

dois graficos tamanhos diferentes

 

Consultaremos a coleção ChartObjects para dar a ambos os gráficos da planilha a mesma altura e largura, excluir as linhas de grade, tornar a cor de fundo a mesma, dar aos gráficos a mesma cor de área de plotagem e tornar a cor da linha de área de plotagem a mesma:

Sub ReferenciaATodosOsGraficosDaPlanilha()

Dim cht As ChartObject

For Each cht In ActiveSheet.ChartObjects
cht.Height = 144.85
cht.Width = 246.61

cht.Chart.Axes(xlValue).MajorGridlines.Delete
cht.Chart.PlotArea.Format.Fill.ForeColor.RGB = RGB(242, 242, 242)
cht.Chart.ChartArea.Format.Fill.ForeColor.RGB = RGB(234, 234, 234)
cht.Chart.PlotArea.Format.Line.ForeColor.RGB = RGB(18, 97, 172)

Next cht

End Sub

O resultado é:

graficos padronizados

Inserção de um Gráfico em sua Própria Planilha de Gráficos

Temos o intervalo A1:B6 que contém os dados de origem, mostrados abaixo:

vendas por regiao expandida

Você pode criar um gráfico usando o método Charts.Add. O código a seguir criará um gráfico em sua própria planilha de gráficos:

Sub InserirGraficoPropriaPlanilha()

Sheets("Planilha1").Range("A1:B6").Select
Charts.Add

End Sub

O resultado é:

grafico propria planilha

Veja alguns de nossos outros tutoriais de gráficos:

Gráficos no Excel

Criar um gráfico de barras em VBA

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA