Графіки VBA | Приклади додавання діаграми за допомогою коду VBA

Діаграми Excel VBA

Діаграми можна назвати об’єктами у VBA, подібно до робочого аркуша, ми також можемо вставляти діаграми у VBA таким же чином, спочатку ми вибираємо дані та тип діаграми, який ми хочемо для вихідних даних, тепер є два різних типи діаграм, які ми надаємо один є вбудованою діаграмою, де діаграма знаходиться в одному аркуші даних, а інша відома як аркуш діаграми, де діаграма знаходиться в окремому аркуші даних.

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

Як додати діаграми за допомогою коду VBA в Excel?

Завантажити цей шаблон VBA Charts Excel можна тут - Шаблон Excel VBA Charts

# 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: Тут потрібно згадати діапазон джерел. У цьому випадку мій діапазон джерела знаходиться в аркуші, який називається «Аркуш1», а діапазон - «А1 - В7».

Код:

 Sub Charts_Example1 () Dim MyChart As Chart Set MyChart = Charts.Add With MyChart .SetSourceData Sheets ("Sheet1"). Range ("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