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

Графики на VBA в Excel

Графиките могат да бъдат наречени като обекти във VBA, подобно на работния лист, ние също можем да вмъкваме диаграми във VBA по същия начин, първо избираме данните и типа диаграма, който искаме за външни данни, сега има два различни типа диаграми, които предоставяме една е вградената диаграма, където диаграмата е в същия лист с данни, а друга е известна като лист с диаграмата, където диаграмата е в отделния лист с данни.

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

Как да добавям диаграми, използвайки VBA код в Excel?

Можете да изтеглите този шаблон на VBA Charts Excel от тук - VBA Charts Excel Template

# 1 - Създаване на диаграма с помощта на VBA кодиране

За да създадем каквато и да е диаграма, трябва да имаме някакви числови данни. За този пример ще използвам примерни данни по-долу.

Добре, нека да преминем към редактора на VBA.

Стъпка 1: Започнете подпроцедура.

Код:

 Sub Charts_Example1 () Край 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"). Диапазон ("A1: B7") End With End Sub 

Стъпка 7: След това трябва да изберете вида на диаграмата, която ще създадем. За това трябва да изберем свойството Chart Type .

Код:

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

Стъпка 8: Тук имаме разнообразни диаграми. Ще избера диаграмата “ xlColumnClustered ”.

Код:

 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 

Добре, в този момент нека стартираме кода с помощта на клавиша F5 или ръчно и да видим как изглежда диаграмата.

Стъпка 9: Сега променете други свойства на диаграмата. За да промените заглавието на диаграмата по-долу е кодът.

По този начин имаме много свойства и методи с диаграми. Използвайте всеки един от тях, за да видите въздействието и да научите.

 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