Guia VBA para tabelas e gráficos

Índice

Os gráficos e tabelas do Excel são usados ​​para exibir dados visualmente. Neste tutorial, vamos cobrir como usar o VBA para criar e manipular gráficos e elementos de gráficos.

Você pode criar gráficos incorporados em uma planilha ou gráficos em suas próprias planilhas.

Criando um gráfico incorporado usando 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:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectSet embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 300, Top: = 7, Height: = 200)embeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). 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:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Dim embeddedchart As ShapeSet embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Range ("A1: B4")End Sub

Especificando um tipo de gráfico usando 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:

123456789 Sub SpecifyAChartType ()Dim chrt As ChartObjectDefina chrt = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 270, Top: = 7, Height: = 210)chrt.Chart.SetSourceData Source: = Sheets ("Sheet1"). Range ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub

O resultado é:

Estes 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

Adicionando um título de gráfico usando VBA

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

Você deve adicionar um título de gráfico primeiro 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 gráfico ativo:

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

O resultado é:

Nota: Você deve selecionar o gráfico primeiro para torná-lo o Gráfico ativo para poder usar o objeto ActiveChart em seu código.

Alterando a cor de fundo do gráfico usando 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:

12345 Sub AddedABackgroundColorToTheChartArea ()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:

12345 Sub AddedABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub

O resultado é:

Nota: 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.

Alterando a cor da área de plotagem do gráfico usando 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:

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

O resultado é:

Adicionando uma legenda usando VBA

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

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

12345 Sub AddedALegend ()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 no topo do gráfico.

Adicionando rótulos de dados usando VBA

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

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:

12345 Sub AdicionandoADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndEnd 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 rótulos de dados à direita do gráfico.
  • msoElementDataLabelLeft - exibe 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.

Adicionando um eixo X e um título no VBA

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

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

123456789 SubAdicionandoAnXAxisandXTitle ()Com ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalTerminar comEnd Sub

O resultado é:

Adicionando um eixo Y e um título no VBA

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

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

1234567 SubAdicionandoAYAxisandYTitle ()Com ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalTerminar comEnd Sub

O resultado é:

Alterando o formato do número de um eixo

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

Você pode alterar o formato de número de um eixo. O código a seguir altera o formato de número do eixo y para moeda:

12345 Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$ #, ## 0.00"End Sub

O resultado é:

Alterando 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 de toda a fonte do gráfico, referindo-se ao objeto de fonte e alterando seu nome, espessura da fonte e tamanho. O código a seguir altera o tipo, peso e tamanho da fonte de todo o gráfico.

12345678910 Sub ChangingTheFontFormatting ()Com ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Terminar com

O resultado é:

Excluindo um gráfico usando VBA

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

Podemos usar o seguinte código para excluir este gráfico:

12345 Sub DeletingTheChart ()ActiveChart.Parent.DeleteEnd Sub

Referindo-se à 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 folha mostrada abaixo:

Iremos nos referir à coleção ChartObjects a fim de dar aos dois gráficos na planilha a mesma altura, largura, deletar as linhas de grade, fazer a cor de fundo a mesma, dar aos gráficos a mesma cor da área de plotagem e tornar a cor da linha da área de plotagem a mesma cor:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht As ChartObjectPara cada cht em ActiveSheet.ChartObjectscht.Height = 144,85cht.Width = 246,61cht.Chart.Axes (xlValue) .MajorGridlines.Deletecht.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)Próximo chtEnd Sub

O resultado é:

Inserindo um gráfico em sua própria folha de gráfico

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áfico:

123456 Sub InsertingAChartOnItsOwnChartSheet ()Folhas ("Folha1"). Intervalo ("A1: B6"). SelecioneCharts.AddEnd Sub

O resultado é:

Veja alguns de nossos outros tutoriais de gráficos:

Gráficos em Excel

Crie um gráfico de barras no VBA

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave