VBA Guia para Gráficos e Diagramas
In this Article
- Criação de um Gráfico Incorporado Usando o VBA
- Especificação de um Tipo de Gráfico Usando o VBA
- Adição do Título do Gráfico Usando VBA
- Alteração da Cor de Fundo do Gráfico Usando o VBA
- Como Alterar a Cor da Área de Plotagem do Gráfico Usando o VBA
- Adição de uma legenda usando VBA
- Adição de Rótulos de Dados Usando o VBA
- Adição de um Eixo X e de um Título no VBA
- Adição de um Eixo Y e de um Título no VBA
- Alterar o Formato Numérico de um Eixo
- Alterar a Formatação da Fonte em um Gráfico
- Exclusão de um Gráfico Usando VBA
- Referência à Coleção ChartObjects
- Inserção de um Gráfico em sua Própria Planilha de Gráficos
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:
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 é:
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:
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 é:
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:
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 é:
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:
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 é:
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 é:
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:
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 é:
Adição de uma legenda usando VBA
Temos um gráfico selecionado na planilha, conforme mostrado abaixo:
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 é:
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:
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 é:
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:
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 é:
Adição de um Eixo Y e de um Título no VBA
Temos um gráfico selecionado na planilha, conforme mostrado abaixo:
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 é:
Alterar o Formato Numérico de um Eixo
Temos um gráfico selecionado na planilha, conforme mostrado abaixo:
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 é:
Alterar a Formatação da Fonte em um Gráfico
Temos o seguinte gráfico selecionado na planilha, conforme mostrado abaixo:
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:
Exclusão de um Gráfico Usando VBA
Temos um gráfico selecionado na planilha, conforme mostrado abaixo:
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:
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 é:
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:
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 é:
Veja alguns de nossos outros tutoriais de gráficos: