Руководство VBA для диаграмм и графиков

Содержание

Диаграммы и графики 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

wave wave wave wave wave