Діаграми та графіки Excel використовуються для візуального відображення даних. У цьому підручнику ми розглянемо, як використовувати VBA для створення та маніпулювання діаграмами та елементами діаграми.
Ви можете створювати вбудовані діаграми на робочому аркуші або діаграми на їх власних аркушах діаграм.
Створення вбудованої діаграми за допомогою VBA
У нас є діапазон A1: B4, який містить вихідні дані, показані нижче:
Ви можете створити діаграму за допомогою методу ChartObjects.Add. Наступний код створить вбудовану діаграму на аркуші:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Затемнити вбудовану діаграму як ChartObjectВстановити embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (зліва: = 180, ширина: = 300, зверху: = 7, висота: = 200)embeddedchart.Chart.SetSourceData Джерело: = Sheets ("Sheet1"). Діапазон ("A1: B4")End Sub |
Результат такий:
Ви також можете створити діаграму за допомогою методу Shapes.AddChart. Наступний код створить вбудовану діаграму на аркуші:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Затемнити вбудовану діаграму як формуВстановити embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Джерело: = Sheets ("Sheet1"). Діапазон ("A1: B4")End Sub |
Визначення типу діаграми за допомогою VBA
У нас є діапазон A1: B5, який містить вихідні дані, показані нижче:
Ви можете вказати тип діаграми за допомогою властивості ChartType. Наступний код створить кругову діаграму на аркуші, оскільки для властивості ChartType було встановлено значення xlPie:
123456789 | Sub SpecifyAChartType ()Затемнити chrt як ChartObjectВстановити chrt = Sheets ("Sheet1"). ChartObjects.Add (зліва: = 180, ширина: = 270, зверху: = 7, висота: = 210)chrt.Chart.SetSourceData Джерело: = Sheets ("Sheet1"). Діапазон ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub |
Результат такий:
Ось деякі з популярних типів діаграм, які зазвичай вказуються, хоча є й інші:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlSurface
- xlBubble
- xlBarClustered
- xlColumnClustered
Додавання заголовка діаграми за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Спочатку потрібно додати назву діаграми за допомогою методу Chart.SetElement, а потім вказати текст заголовка діаграми, встановивши властивість ChartTitle.Text.
Наступний код показує, як додати назву діаграми та вказати текст заголовка активної діаграми:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Продаж продукту"End Sub |
Результат такий:
Примітка: Ви повинні спочатку вибрати діаграму, щоб вона стала активною діаграмою, щоб мати можливість використовувати об’єкт ActiveChart у вашому коді.
Зміна кольору фону діаграми за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете змінити колір фону всієї діаграми, встановивши властивість RGB об'єкта FillFormat об'єкта ChartArea. Наступний код надасть діаграмі світло -помаранчевий колір фону:
12345 | Додаткове додаванняABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)End Sub |
Результат такий:
Ви також можете змінити колір фону всієї діаграми, встановивши властивість ColorIndex об'єкта Interior об'єкта ChartArea. Наступний код надасть діаграмі помаранчевий колір фону:
12345 | Додаткове додаванняABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub |
Результат такий:
Примітка: Властивість ColorIndex дозволяє вказати колір на основі значення від 1 до 56, взятого з попередньо встановленої палітри, щоб побачити, які значення представляють різні кольори, клацніть тут.
Зміна кольору ділянки діаграми за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете змінити колір фону лише ділянки діаграми, встановивши властивість RGB об’єкта FillFormat об’єкта PlotArea. Наступний код надасть ділянці діаграми світло -зелений колір фону:
12345 | Додаткове додаванняABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)End Sub |
Результат такий:
Додавання легенди за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете додати легенду за допомогою методу Chart.SetElement. Наступний код додає легенду зліва від діаграми:
12345 | Додавання допоміжних елементівActiveChart.SetElement (msoElementLegendLeft)End Sub |
Результат такий:
Ви можете вказати положення легенди такими способами:
- msoElementLegendLeft - відображає легенду в лівій частині діаграми.
- msoElementLegendLeftOverlay - накладає легенду з лівого боку діаграми.
- msoElementLegendRight - відображає легенду з правого боку діаграми.
- msoElementLegendRightOverlay - накладає легенду з правого боку діаграми.
- msoElementLegendBottom - відображає легенду внизу діаграми.
- msoElementLegendTop - відображає легенду у верхній частині діаграми.
Додавання міток даних за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете додати мітки даних за допомогою методу Chart.SetElement. Наступний код додає мітки даних до внутрішнього кінця діаграми:
12345 | Додавання додаткових мітокADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub |
Результат такий:
Ви можете вказати розташування міток даних такими способами:
- msoElementDataLabelShow - відображення міток даних.
- msoElementDataLabelRight - відображає мітки даних праворуч від діаграми.
- msoElementDataLabelLeft - відображає мітки даних зліва від діаграми.
- msoElementDataLabelTop - відображає мітки даних у верхній частині діаграми.
- msoElementDataLabelBestFit - визначає найкращу відповідність.
- msoElementDataLabelBottom - відображає мітки даних у нижній частині діаграми.
- msoElementDataLabelCallout - відображає мітки даних у вигляді виноски.
- msoElementDataLabelCenter - відображає мітки даних у центрі.
- msoElementDataLabelInsideBase - відображає мітки даних на внутрішній основі.
- msoElementDataLabelOutSideEnd - відображає мітки даних на зовнішньому кінці діаграми.
- msoElementDataLabelInsideEnd - відображає мітки даних на внутрішньому кінці діаграми.
Додавання осі X та заголовка у VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете додати заголовок осі X та осі X за допомогою методу Chart.SetElement. Наступний код додає до діаграми заголовок осі X та осі X:
123456789 | Додавання доповненняAnXAxisandXTitle ()За допомогою ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalЗакінчити зEnd Sub |
Результат такий:
Додавання осі Y та заголовка у VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете додати заголовок осі Y та осі Y за допомогою методу Chart.SetElement. Наступний код додає до діаграми назву осі Y та осі Y:
1234567 | Sub AddingAYAxisandYTitle ()За допомогою ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalЗакінчити зEnd Sub |
Результат такий:
Зміна числового формату осі
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ви можете змінити числовий формат осі. Наступний код змінює числовий формат осі y на валюту:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"End Sub |
Результат такий:
Зміна форматування шрифту на діаграмі
На робочому аркуші вибрано таку діаграму, як показано нижче:
Ви можете змінити форматування всього шрифту діаграми, звернувшись до об’єкта шрифту та змінивши його назву, вагу та розмір шрифту. Наступний код змінює тип, вагу та розмір шрифту всієї діаграми.
12345678910 | Sub ChangingTheFontFormatting ()За допомогою ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Закінчити з |
Результат такий:
Видалення діаграми за допомогою VBA
У нас на робочому аркуші вибрано діаграму, як показано нижче:
Ми можемо використовувати такий код для видалення цієї діаграми:
12345 | Внутрішнє видаленняTheChart ()ActiveChart.Parent.DeleteEnd Sub |
Звертаючись до колекції ChartObjects
Ви можете отримати доступ до всіх вбудованих діаграм у вашому аркуші або книзі, звернувшись до колекції ChartObjects. Ми маємо дві діаграми на одному аркуші, показані нижче:
Ми звернемося до колекції ChartObjects, щоб надати обом діаграм на аркуші однакову висоту, ширину, видалити лінії сітки, зробити колір фону однаковим, надати діаграм той самий колір області ділянки та зробити колір лінії ділянки таким самим колір:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet ()Затемнити як ChartObjectДля кожного cht в ActiveSheet.ChartObjectscht.Height = 144.85ширина ширини = 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)Наступний чтEnd Sub |
Результат такий:
Вставлення діаграми на власний аркуш діаграми
У нас є діапазон A1: B6, який містить вихідні дані, показані нижче:
Ви можете створити діаграму, використовуючи метод Charts.Add. Наступний код створить діаграму на власному аркуші діаграми:
123456 | Додаткова вставка AChartOnItsOwnChartSheet ()Аркуші ("Аркуш1"). Діапазон ("A1: B6"). ВиберітьДіаграми. ДодатиEnd Sub |
Результат такий:
Дивіться деякі з інших наших підручників із створення діаграм:
Діаграми в Excel
Створіть стовпчасту діаграму у VBA