Диаграммы и графики Excel используются для визуального отображения данных. В этом руководстве мы расскажем, как использовать VBA для создания диаграмм и элементов диаграмм и управления ими.
Вы можете создавать встроенные диаграммы на листе или диаграммы на отдельных листах диаграмм.
Создание встроенной диаграммы с помощью VBA
У нас есть диапазон A1: B4, который содержит исходные данные, показанные ниже:
Вы можете создать диаграмму с помощью метода ChartObjects.Add. Следующий код создаст на листе встроенную диаграмму:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Уменьшить размер встроенной диаграммы как ChartObjectУстановите embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 300, Top: = 7, Height: = 200)embeddedchart.Chart.SetSourceData Источник: = Sheets ("Sheet1"). Range ("A1: B4")Конец подписки |
Результат:
Вы также можете создать диаграмму с помощью метода Shapes.AddChart. Следующий код создаст на листе встроенную диаграмму:
12345678 | Подложка CreateEmbeddedChartUsingShapesAddChart ()Заменить встроенную диаграмму как фигуруУстановите embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Range ("A1: B4")Конец подписки |
Указание типа диаграммы с помощью VBA
У нас есть диапазон A1: B5, который содержит исходные данные, показанные ниже:
Вы можете указать тип диаграммы, используя свойство ChartType. Следующий код создаст круговую диаграмму на листе, поскольку для свойства ChartType задано значение xlPie:
123456789 | Sub SpecifyAChartType ()Dim chrt как ChartObjectУстановите chrt = Sheets ("Sheet1"). ChartObjects.Add (Left: = 180, Width: = 270, Top: = 7, Height: = 210)chrt.Chart.SetSourceData Source: = Sheets ("Sheet1"). Range ("A1: B5")chrt.Chart.ChartType = xlPieКонец подписки |
Результат:
Вот некоторые из популярных типов диаграмм, которые обычно указываются, хотя есть и другие:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlSurface
- xlBubble
- xlBarClustered
- xlColumnClustered
Добавление заголовка диаграммы с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Сначала необходимо добавить заголовок диаграммы с помощью метода Chart.SetElement, а затем указать текст заголовка диаграммы, установив свойство ChartTitle.Text.
В следующем коде показано, как добавить заголовок диаграммы и указать текст заголовка активной диаграммы:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Продажи продукта"Конец подписки |
Результат:
Примечание. Сначала необходимо выбрать диаграмму, чтобы сделать ее активной, чтобы можно было использовать объект ActiveChart в своем коде.
Изменение цвета фона диаграммы с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете изменить цвет фона всей диаграммы, установив свойство RGB объекта FillFormat объекта ChartArea. Следующий код придаст диаграмме светло-оранжевый цвет фона:
12345 | Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Конец подписки |
Результат:
Вы также можете изменить цвет фона всей диаграммы, установив свойство ColorIndex объекта Interior объекта ChartArea. Следующий код придаст диаграмме оранжевый цвет фона:
12345 | Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Конец подписки |
Результат:
Примечание. Свойство ColorIndex позволяет указать цвет на основе значения от 1 до 56, взятого из предустановленной палитры, чтобы увидеть, какие значения представляют разные цвета, щелкните здесь.
Изменение цвета области графика диаграммы с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете изменить цвет фона только области построения диаграммы, установив свойство RGB объекта FillFormat объекта PlotArea. Следующий код придаст области построения диаграммы светло-зеленый цвет фона:
12345 | Sub AddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Конец подписки |
Результат:
Добавление легенды с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете добавить легенду с помощью метода Chart.SetElement. Следующий код добавляет легенду слева от диаграммы:
12345 | Подложка AddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)Конец подписки |
Результат:
Вы можете указать положение легенды следующими способами:
- msoElementLegendLeft - отображает легенду в левой части диаграммы.
- msoElementLegendLeftOverlay - накладывает легенду на левую часть диаграммы.
- msoElementLegendRight - отображает легенду в правой части диаграммы.
- msoElementLegendRightOverlay - накладывает легенду на правую часть диаграммы.
- msoElementLegendBottom - отображает легенду внизу диаграммы.
- msoElementLegendTop - отображает легенду вверху диаграммы.
Добавление меток данных с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете добавлять метки данных с помощью метода Chart.SetElement. Следующий код добавляет метки данных на внутренний конец диаграммы:
12345 | Sub AddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndКонец подписки |
Результат:
Вы можете указать расположение меток данных следующими способами:
- msoElementDataLabelShow - отображать метки данных.
- msoElementDataLabelRight - отображает метки данных в правой части диаграммы.
- msoElementDataLabelLeft - отображает метки данных в левой части диаграммы.
- msoElementDataLabelTop - отображает метки данных вверху диаграммы.
- msoElementDataLabelBestFit - определяет наилучшее соответствие.
- msoElementDataLabelBottom - отображает метки данных внизу диаграммы.
- msoElementDataLabelCallout - отображает метки данных в виде выноски.
- msoElementDataLabelCenter - отображает метки данных в центре.
- msoElementDataLabelInsideBase - отображает метки данных на внутренней основе.
- msoElementDataLabelOutSideEnd - отображает метки данных на внешнем конце диаграммы.
- msoElementDataLabelInsideEnd - отображает метки данных на внутреннем конце диаграммы.
Добавление оси X и заголовка в VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете добавить заголовок оси X и оси X с помощью метода Chart.SetElement. Следующий код добавляет к диаграмме заголовки осей X и X:
123456789 | Sub AddingAnXAxisandXTitle ()С ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalКонец сКонец подписки |
Результат:
Добавление оси Y и заголовка в VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете добавить заголовок оси Y и оси Y с помощью метода Chart.SetElement. Следующий код добавляет к диаграмме заголовки по осям Y и Y:
1234567 | Дополнительное добавлениеAYAxisandYTitle ()С ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalКонец сКонец подписки |
Результат:
Изменение числового формата оси
У нас есть диаграмма, выбранная на листе, как показано ниже:
Вы можете изменить числовой формат оси. Следующий код изменяет числовой формат оси Y на валюту:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$ #, ## 0.00"Конец подписки |
Результат:
Изменение форматирования шрифта на диаграмме
У нас на листе выбрана следующая диаграмма, как показано ниже:
Вы можете изменить форматирование всего шрифта диаграммы, обратившись к объекту шрифта и изменив его имя, толщину и размер шрифта. Следующий код изменяет тип, вес и размер шрифта всей диаграммы.
12345678910 | Sub ChangingTheFontFormatting ()С ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Истина.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Конец с |
Результат:
Удаление диаграммы с помощью VBA
У нас есть диаграмма, выбранная на листе, как показано ниже:
Мы можем использовать следующий код, чтобы удалить эту диаграмму:
12345 | Sub DeletingTheChart ()ActiveChart.Parent.DeleteКонец подписки |
Ссылаясь на коллекцию ChartObjects
Вы можете получить доступ ко всем встроенным диаграммам на листе или в книге, обратившись к коллекции ChartObjects. У нас есть две диаграммы на одном листе, показанном ниже:
Мы обратимся к коллекции ChartObjects, чтобы дать обеим диаграммам на листе одинаковую высоту и ширину, удалить линии сетки, сделать цвет фона одинаковым, дать диаграммам одинаковый цвет области графика и сделать одинаковый цвет линии области графика. цвет:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet ()Dim cht As ChartObjectДля каждого cht в ActiveSheet.ChartObjectscht.Height = 144,85cht.Width = 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)Следующий чтКонец подписки |
Результат:
Вставка диаграммы на отдельный лист диаграммы
У нас есть диапазон A1: B6, который содержит исходные данные, показанные ниже:
Вы можете создать диаграмму, используя метод Charts.Add. Следующий код создаст диаграмму на собственном листе диаграммы:
123456 | Sub InsertingAChartOnItsOwnChartSheet ()Листы ("Лист1"). Диапазон ("A1: B6"). ВыберитеCharts.AddКонец подписки |
Результат:
См. Некоторые из наших других руководств по построению графиков:
Графики в Excel
Создайте гистограмму в VBA