Gráficos VBA

Gráficos Excel VBA

Os gráficos podem ser denominados como objetos no VBA, semelhante à planilha, também podemos inserir gráficos no VBA da mesma maneira, primeiro selecionamos os dados e o tipo de gráfico que queremos para nossos dados, agora existem dois tipos diferentes de gráficos, fornecemos um é o gráfico incorporado onde o gráfico está na mesma folha de dados e outro é conhecido como a folha de gráfico, onde o gráfico está na folha separada de dados.

Na análise de dados, os efeitos visuais são os principais indicadores de desempenho da pessoa que fez a análise. Os recursos visuais são a melhor maneira possível de um analista transmitir sua mensagem. Como todos nós somos usuários do Excel, normalmente gastamos uma quantidade considerável de tempo analisando os dados e tirando conclusões com números e gráficos. Criar um gráfico é a arte a dominar e espero que você tenha um bom conhecimento de criação de gráficos com o Excel. Neste artigo, mostraremos como criar gráficos usando a codificação VBA.

Como adicionar gráficos usando código VBA no Excel?

Você pode baixar este modelo de gráficos VBA aqui - Modelo de gráficos VBA em Excel

# 1 - Criar gráfico usando codificação VBA

Para criar qualquer gráfico, devemos ter algum tipo de dado numérico. Para este exemplo, vou usar os dados de amostra abaixo.

Ok, vamos pular para o editor de VBA.

Etapa 1: iniciar o subprocedimento.

Código:

 Sub Charts_Example1 () End Sub 

Etapa 2: defina a variável como gráfico.

Código:

 Sub Charts_Example1 () Dim MyChart As Chart End Sub 

Passo 3: Como o gráfico é uma variável de objeto, precisamos defini- lo.

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add End Sub 

O código acima adicionará uma nova planilha como uma planilha de gráfico, não como uma planilha.

Etapa 4: agora precisamos projetar o gráfico. Abra com declaração.

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart End With End Sub 

Etapa 5: A primeira  coisa que precisamos fazer com o gráfico é definir o intervalo de origem, selecionando o método “Definir dados de origem” .

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData End With End Sub 

Etapa 6: aqui precisamos mencionar o intervalo de origem. Nesse caso, meu intervalo de origem está na folha denominada “Folha1” e o intervalo é de “A1 a B7”.

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") End With End Sub 

Etapa 7: Em seguida, precisamos selecionar o tipo de gráfico que iremos criar. Para isso, precisamos selecionar a propriedade Chart Type .

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") .ChartType = End With End Sub 

Etapa 8: aqui temos uma variedade de gráficos. Vou selecionar o gráfico “ xlColumnClustered ”.

Código:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") .ChartType = xlColumnClustered End With End Sub 

Ok, neste momento vamos rodar o código usando a tecla F5 ou manualmente e ver como fica o gráfico.

Etapa 9: agora altere outras propriedades do gráfico. Para alterar o título do gráfico abaixo está o código.

Assim, temos muitas propriedades e métodos com gráficos. Use cada um deles para ver o impacto e aprender.

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("A1: B7") .ChartType = xlColumnClustered .ChartTitle.Text = "Desempenho de vendas" End With End Sub 

# 2 - Crie um gráfico com a mesma planilha do Excel como forma

Para criar o gráfico com a mesma planilha (folha de dados) como forma, precisamos usar uma técnica diferente.

Etapa 1: primeiro declare três variáveis ​​de objeto.

Código:

 Sub Charts_Example2 () Dim Ws As Planilha Dim Rng As Range Dim MyChart As Object End Sub 

Etapa 2: Defina a referência da planilha.

Código:

 Sub Charts_Example2 () Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object Set Ws = Worksheets ("Sheet1") End Sub 

Etapa 3: agora defina o objeto de intervalo no VBA

Código:

 Sub Charts_Example2() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") End Sub 

Step 4: Now set the chart object.

Code:

 Sub Charts_Example2() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As Object Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") Set MyChart = Ws.Shapes.AddChart2 End Sub 

Step 5: Now, as usual, we can design the chart by using the “With” statement.

Code:

 Sub Charts_Example2() Dim Ws As Worksheet 'To Hold Worksheet Reference Dim Rng As Range 'To Hold Range Reference in the Worksheet Dim MyChart As Object Set Ws = Worksheets("Sheet1") 'Now variable "Ws" is equal to the sheet "Sheet1" Set Rng = Ws.Range("A1:B7") 'Now variable "Rng" holds the range A1 to B7 in the sheet "Sheet1" Set MyChart = Ws.Shapes.AddChart2 'Chart will be added as Shape in the same worksheet With MyChart.Chart .SetSourceData Rng 'Since we already set the range of cells to be used for chart we have use RNG object here .ChartType = xlColumnClustered .ChartTitle.Text = "Sales Performance" End With End Sub 

This will add the chart below.

#3 – Code to Loop through the Charts

Like how we look through sheets to change the name or insert values, hide & unhide them. Similarly to loop through the charts we need to use chart object property.

The below code will loop through all the charts in the worksheet.

Code:

 Sub Chart_Loop() Dim MyChart As ChartObject For Each MyChart In ActiveSheet.ChartObjects 'Enter the code here Next MyChart End Sub 

#4 – Alternative Method to Create Chart

We can use the below alternative method to create charts. We can use the Chart Object. Add method to create the chart below is the example code.

This will also create a chart like the previous method.

Code:

 Sub Charts_Example3() Dim Ws As Worksheet Dim Rng As Range Dim MyChart As ChartObject Set Ws = Worksheets("Sheet1") Set Rng = Ws.Range("A1:B7") Set MyChart = Ws.ChartObjects.Add(Left:=ActiveCell.Left, Width:=400, Top:=ActiveCell.Top, Height:=200) MyChart.Chart.SetSourceData Source:=Rng MyChart.Chart.ChartType = xlColumnStacked MyChart.Chart.ChartTitle.Text = "Sales Performance" End Sub