Графики VBA | Примеры добавления диаграммы с использованием кода VBA

Диаграммы Excel VBA

Диаграммы могут быть названы объектами в VBA, аналогично рабочему листу, мы также можем вставлять диаграммы в VBA таким же образом, сначала мы выбираем данные и тип диаграммы, которые мы хотим для выходных данных, теперь мы предоставляем два разных типа диаграмм. - это встроенная диаграмма, в которой диаграмма находится в том же листе данных, а другая известна как лист диаграммы, где диаграмма находится на отдельном листе данных.

При анализе данных визуальные эффекты являются ключевыми показателями эффективности человека, проводившего анализ. Визуальные эффекты - лучший способ, которым аналитик может передать свое сообщение. Поскольку мы все являемся опытными пользователями, мы обычно тратим значительное количество времени на анализ данных и делаем выводы с помощью чисел и диаграмм. Создание диаграммы - это искусство, которым нужно овладеть, и я надеюсь, что вы хорошо знаете, как создавать диаграммы с помощью Excel. В этой статье мы покажем вам, как создавать диаграммы, используя кодирование VBA.

Как добавить диаграммы с помощью кода VBA в Excel?

Вы можете скачать этот шаблон Excel для диаграмм VBA здесь - Шаблон для диаграмм VBA для Excel

# 1 - Создание диаграммы с использованием кода VBA

Чтобы создать любую диаграмму, нам нужны какие-то числовые данные. В этом примере я буду использовать приведенные ниже образцы данных.

Хорошо, перейдем к редактору VBA.

Шаг 1: Запуск подпроцедуры.

Код:

 Sub Charts_Example1 () End Sub 

Шаг 2: Определите переменную как диаграмму.

Код:

 Sub Charts_Example1 () Dim MyChart As Chart End Sub 

Шаг 3: Поскольку диаграмма является объектной переменной, нам необходимо ее установить .

Код:

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

Приведенный выше код добавит новый лист как лист диаграммы, а не как рабочий лист.

Шаг 4: Теперь нам нужно создать диаграмму. Открыть с помощью заявления.

Код:

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

Шаг 5: Первое  , что нам нужно сделать с диаграммой, - это установить исходный диапазон, выбрав метод «Установить исходные данные» .

Код:

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

Шаг 6: Здесь нам нужно указать исходный диапазон. В этом случае мой исходный диапазон находится на листе с именем «Sheet1», а диапазон - «от A1 до B7».

Код:

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

Шаг 7: Далее нам нужно выбрать тип диаграммы, которую мы собираемся создать. Для этого нам нужно выбрать свойство Тип диаграммы .

Код:

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

Step 8: Here we have a variety of charts. I am going to select the “xlColumnClustered” chart.

Code:

 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, at this moment let’s run the code using F5 key or manually and see how the chart looks.

Step 9: Now change other properties of the chart. To change the chart title below is the code.

Like this, we have many properties and methods with charts. Use each one of them to see the impact and learn.

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

#2 – Create a Chart with Same Excel Sheet as Shape

To create the chart with the same worksheet (datasheet) as shape we need to use a different technique.

Step 1: First Declare threes Object Variables.

Code:

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

Step 2: Then Set the Worksheet reference.

Code:

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

Step 3: Now set the range object in VBA

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") 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