Содержание
Диаграммы и графики 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
Программное создание графика (диаграммы) в VBA Excel с помощью метода Charts.Add на основе данных из диапазона ячеек на рабочем листе. Примеры.
Метод Charts.Add
В настоящее время на сайте разработчиков описывается метод Charts.Add2, который, очевидно, заменил метод Charts.Add. Тесты показали, что Charts.Add продолжает работать в новых версиях VBA Excel, поэтому в примерах используется именно он.
Синтаксис
Charts.Add ([Before], [After], [Count]) |
Charts.Add2 ([Before], [After], [Count], [NewLayout]) |
Параметры
Параметры методов Charts.Add и Charts.Add2:
Параметр | Описание |
---|---|
Before | Имя листа, перед которым добавляется новый лист с диаграммой. Необязательный параметр. |
After | Имя листа, после которого добавляется новый лист с диаграммой. Необязательный параметр. |
Count | Количество добавляемых листов с диаграммой. Значение по умолчанию – 1. Необязательный параметр. |
NewLayout | Если NewLayout имеет значение True, диаграмма вставляется с использованием новых правил динамического форматирования (заголовок имеет значение «включено», а условные обозначения – только при наличии нескольких рядов). Необязательный параметр. |
Если параметры Before и After опущены, новый лист с диаграммой вставляется перед активным листом.
Примеры
Таблицы
В качестве источников данных для примеров используются следующие таблицы:
Пример 1
Программное создание объекта Chart с типом графика по умолчанию и по исходным данным из диапазона «A2:B26»:
Sub Primer1() Dim myChart As Chart ‘создаем объект Chart с расположением нового листа по умолчанию Set myChart = ThisWorkbook.Charts.Add With myChart ‘назначаем объекту Chart источник данных .SetSourceData (Sheets(«Лист1»).Range(«A2:B26»)) ‘переносим диаграмму на «Лист1» (отдельный лист диаграммы удаляется) .Location xlLocationAsObject, «Лист1» End With End Sub |
Результат работы кода VBA Excel из первого примера:
Пример 2
Программное создание объекта Chart с двумя линейными графиками по исходным данным из диапазона «A2:C26»:
Sub Primer2() Dim myChart As Chart Set myChart = ThisWorkbook.Charts.Add With myChart .SetSourceData (Sheets(«Лист1»).Range(«A2:C26»)) ‘задаем тип диаграммы (линейный график с маркерами) .ChartType = xlLineMarkers .Location xlLocationAsObject, «Лист1» End With End Sub |
Результат работы кода VBA Excel из второго примера:
Пример 3
Программное создание объекта Chart с круговой диаграммой, разделенной на сектора, по исходным данным из диапазона «E2:F7»:
Sub Primer3() Dim myChart As Chart Set myChart = ThisWorkbook.Charts.Add With myChart .SetSourceData (Sheets(«Лист1»).Range(«E2:F7»)) ‘задаем тип диаграммы (пирог — круг, разделенный на сектора) .ChartType = xlPie ‘задаем стиль диаграммы (с отображением процентов) .ChartStyle = 261 .Location xlLocationAsObject, «Лист1» End With End Sub |
Результат работы кода VBA Excel из третьего примера:
Примечание
В примерах использовались следующие методы и свойства объекта Chart:
Компонент | Описание |
---|---|
Метод SetSourceData | Задает диапазон исходных данных для диаграммы. |
Метод Location | Перемещает диаграмму в заданное расположение (новый лист, существующий лист, элемент управления). |
Свойство ChartType | Возвращает или задает тип диаграммы. Смотрите константы. |
Свойство ChartStyle | Возвращает или задает стиль диаграммы. Значение нужного стиля можно узнать, записав макрос. |
Модератор:Naeel Maqsudov
-
Timofey
- Сообщения:32
- Зарегистрирован:28 апр 2006, 11:42
- Откуда:Владивосток
- Контактная информация:
Проблема такая.
Есть данные (40 столбцов, 10000 строк), которые могут меняться почти случайным образом. Их надо анализировать сравнивая столбцы друг с другом. Проще всего это делать при помощи диаграммы. Каким образом можно поменять параметры диаграммы (добавить/удалить ряд, обновить), которая была бы на одном листе с данными?
Менять данные в ручную долго. Потому что нельзя предсказать какое количество и какие столбцы надо сравнить. Ряды надо добавлять, удалять сравнивая друг с другом. При анализе одной выборки может понадобитя несколько сотен изменений. Выносить диаграмму на отдельный лист тоже не хотелось бы.
Код который определяет какой столбец надо добавить/удалить и передавал бы эти параметры диаграмме я состряпаю, только не могу позиционироваться на определённой диаграмме (их у меня несколько, на нескольких листах) и впихнуть в неё новые данные. Пробовал через конструктор макросов, толку никакого нет. При попытке запустить такой макрос VBA выдаёт ошибку. Все попытки подкорректировать макрос , тоже без успешные.
Кто сталкивался с этим помогите.
P.S.
Кстати, подобное нашёл на форуме, но… опять ошибка.
forum/topic5408.html
-
Timofey
- Сообщения:32
- Зарегистрирован:28 апр 2006, 11:42
- Откуда:Владивосток
- Контактная информация:
29 апр 2006, 14:30
Спасибо Avsha!
Кому надо пользуйтесь:
Worksheets(2).ChartObjects(1).Chart.SetSourceData Sheets(«n»).Range(«AD11:AE2005,M11:M2005»), xlColumns
Подставьте нужные номера листа и диаграммы, или их имена, введите нужный диапазон.
-
Avsha
- Сообщения:664
- Зарегистрирован:08 сен 2005, 13:47
- Откуда:KZ
01 май 2006, 08:22
Timofey,
делал недавно похожую конструкцию для подмены данных в диаграмме
если интересно, посмотрите…
http://avsha.narod.ru/Excel_Chart.rar
диаграмма настроена на статичный определенный диапазон,
а данные в этот диапазон попадают с использованием функции ИНДЕКС() из основного диапазона данных.
-
Naeel Maqsudov
- Сообщения:2551
- Зарегистрирован:20 фев 2004, 19:17
- Откуда:Moscow, Russia
-
Контактная информация:
02 май 2006, 10:29
Совет:
Так как чаще всего не хватает знания о том как называются нужные свойства, методы и константы, то удобно делать следующее:
1) В VBA через Tools/References добавьте в проект ссылку на Microsoft Graph XX Object library
2) Нажмите F2 — появится Object Browser
3) Изучите с помощью Object Browser названия свойств и методов — в большинстве случаев название интуитивно понятно
(Большинство, к сожалению, это не 90% а несколько меньше, но этот простой совет позволяет в кратчайшие сроки получить наиболее поллное представление о нужном классе)
Кроме того, такая подгрузка библиотек в некотором роде помогает при редактировании исходного кода.
Объявите переменную, например, не просто Object (или Variant) а конкретно — Graph.Series, напрмиер. И все идентификаторы будут появляться в подстрочнике после использования этой переменной.
Charts, Charts, & More Charts!
Graphical visualizations are arguably the pinnacle of how an analyst shares his/her results and possessing the ability to manipulate them is key to the field. Since we as data analysts spend some much time creating graphs, it is more valuable than ever to understand how to automate them.
What if you have 20 graphs on a spreadsheet and they all need to have their legends in the exact same spot? What if you create a bunch of charts and your manager needs the series colors changed at the last minute? Do you want to do this all manually?
Below will be your cheat sheet for manipulating Excel charts & graphs with VBA code. Please let me know via the comments section if there are areas missing from this guide so I can expand on them. Enjoy!
VBA Chart Guide Contents
-
Create/Insert Chart
-
Looping Through Charts/Series
-
Chart Title (Adding/Modifying)
-
Chart Legend (Adding/Modifying)
-
Adding Various Chart Attributes
-
Modifying Various Chart Attributes
-
Removing Various Chart Attributes
-
Change Chart Colors
-
Chart Excel Add-ins
Inserting A Chart
Method 1:
Sub CreateChart()
‘PURPOSE: Create a chart (chart dimensions are not required)
Dim rng As Range
Dim cht As Object
‘Your data range for the chart
Set rng = ActiveSheet.Range(«A24:M27»)
‘Create a chart
Set cht = ActiveSheet.Shapes.AddChart2
‘Give chart some data
cht.Chart.SetSourceData Source:=rng
‘Determine the chart type
cht.Chart.ChartType = xlXYScatterLines
End Sub
Sub CreateChart()
‘PURPOSE: Create a chart (chart dimensions are required)
Dim rng As Range
Dim cht As ChartObject
‘Your data range for the chart
Set rng = ActiveSheet.Range(«A24:M27»)
‘Create a chart
Set cht = ActiveSheet.ChartObjects.Add( _
Left:=ActiveCell.Left, _
Width:=450, _
Top:=ActiveCell.Top, _
Height:=250)
‘Give chart some data
cht.Chart.SetSourceData Source:=rng
‘Determine the chart type
cht.Chart.ChartType = xlXYScatterLines
End Sub
Looping Through Charts & Series
Sub LoopThroughCharts()
‘PURPOSE: How to cycle through charts and chart series
Dim cht As ChartObject
Dim ser As Series
‘Loop Through all charts on ActiveSheet
For Each cht In ActiveSheet.ChartObjects
Next cht
‘Loop through all series in a chart
For Each ser In grph.Chart.SeriesCollection
Next ser
‘Loop Through all series on Activesheet
For Each cht In ActiveSheet.ChartObjects
For Each ser In grph.Chart.SeriesCollection
Next ser
Next cht
End Sub
Adding & Modifying A Chart Title
Add Chart Title
Sub AddChartTitle()
‘PURPOSE: Add a title to a specific chart
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects(«Chart 1»)
‘Ensure chart has a title
cht.Chart.HasTitle = True
‘Change chart’s title
cht.Chart.ChartTitle.Text = «My Graph»
End Sub
Move/Reposition Chart Title
Sub RepositionChartTitle()
‘PURPOSE: Reposition a chart’s title
Dim cht As ChartObject
Set cht = ActiveSheet.ChartObjects(«Chart 1»)
‘Reposition title
With cht.Chart.ChartTitle
.Left = 100
.Top = 50
End With
End Sub
Adding & Modifying A Graph Legend
Insert/Create Chart Legend
Sub InsertChartLegend()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(«Chart 1»).Chart
‘Add Legend to the Right
cht.SetElement (msoElementLegendRight)
‘Add Legend to the Left
cht.SetElement (msoElementLegendLeft)
‘Add Legend to the Bottom
cht.SetElement (msoElementLegendBottom)
‘Add Legend to the Top
cht.SetElement (msoElementLegendTop)
‘Add Overlaying Legend to the Left
cht.SetElement (msoElementLegendLeftOverlay)
‘Add Overlaying Legend to the Right
cht.SetElement (msoElementLegendRightOverlay)
End Sub
Resize/Move Chart Legend
Sub DimensionChartLegend()
Dim lgd As Legend
Set lgd = ActiveSheet.ChartObjects(«Chart 1»).Chart.Legend
lgd.Left = 240.23
lgd.Top = 6.962
lgd.Width = 103.769
lgd.Height = 25.165
End Sub
Adding Various Chart Attributes
Sub AddStuffToChart()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(«Chart 1»).Chart
‘Add X-axis
cht.HasAxis(xlCategory, xlPrimary) = True ‘[Method #1]
cht.SetElement (msoElementPrimaryCategoryAxisShow) ‘[Method #2]
‘Add X-axis title
cht.Axes(xlCategory, xlPrimary).HasTitle = True ‘[Method #1]
cht.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) ‘[Method #2]
‘Add y-axis
cht.HasAxis(xlValue, xlPrimary) = True ‘[Method #1]
cht.SetElement (msoElementPrimaryValueAxisShow) ‘[Method #2]
‘Add y-axis title
cht.Axes(xlValue, xlPrimary).HasTitle = True ‘[Method #1]
cht.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) ‘[Method #2]
‘Add Data Labels (Centered)
cht.SetElement (msoElementDataLabelCenter)
‘Add Major Gridlines
cht.SetElement (msoElementPrimaryValueGridLinesMajor)
‘Add Linear Trend Line
cht.SeriesCollection(1).Trendlines.Add Type:=xlLinear
End Sub
Modifying Various Chart Attributes
Sub ChangeChartFormatting()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(«Chart 1»).Chart
‘Adjust y-axis Scale
cht.Axes(xlValue).MinimumScale = 40
cht.Axes(xlValue).MaximumScale = 100
‘Adjust x-axis Scale
cht.Axes(xlCategory).MinimumScale = 1
cht.Axes(xlCategory).MaximumScale = 10
‘Adjust Bar Gap
cht.ChartGroups(1).GapWidth = 60
‘Format Font Size
cht.ChartArea.Format.TextFrame2.TextRange.Font.Size = 12
‘Format Font Type
cht.ChartArea.Format.TextFrame2.TextRange.Font.Name = «Arial»
‘Make Font Bold
cht.ChartArea.Format.TextFrame2.TextRange.Font.Bold = msoTrue
‘Make Font Italicized
cht.ChartArea.Format.TextFrame2.TextRange.Font.Italic = msoTrue
End Sub
Removing Various Chart Attributes
Sub RemoveChartFormatting()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(«Chart 1»).Chart
‘Remove Chart Series
cht.SeriesCollection(2).Delete
‘Remove Gridlines
cht.Axes(xlValue).MajorGridlines.Delete
cht.Axes(xlValue).MinorGridlines.Delete
‘Remove X-axis
cht.Axes(xlCategory).Delete
‘Remove Y-axis
cht.Axes(xlValue).Delete
‘Remove Legend
cht.Legend.Delete
‘Remove Title
cht.ChartTitle.Delete
‘Remove ChartArea border
cht.ChartArea.Border.LineStyle = xlNone
‘No background color fill
cht.ChartArea.Format.Fill.Visible = msoFalse
cht.PlotArea.Format.Fill.Visible = msoFalse
End Sub
Change Chart Colors
Sub ChangeChartColors()
Dim cht As Chart
Set cht = ActiveSheet.ChartObjects(«Chart 1»).Chart
‘Change first bar chart series fill color
cht.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(91, 155, 213)
‘Change X-axis label color
cht.Axes(xlCategory).TickLabels.Font.Color = RGB(91, 155, 213)
‘Change Y-axis label color
cht.Axes(xlValue).TickLabels.Font.Color = RGB(91, 155, 213)
‘Change Plot Area border color
cht.PlotArea.Format.Line.ForeColor.RGB = RGB(91, 155, 213)
‘Change Major gridline color
cht.Axes(xlValue).MajorGridlines.Format.Line.ForeColor.RGB = RGB(91, 155, 213)
‘Change Chart Title font color
cht.ChartTitle.Format.TextFrame2.TextRange.Font.Fill.ForeColor.RGB = RGB(91, 155, 213)
‘No background color fill
cht.ChartArea.Format.Fill.Visible = msoFalse
cht.PlotArea.Format.Fill.Visible = msoFalse
End Sub
Chart Excel Add-ins
-
Waterfall Chart Excel Add-in — Automatically create editable Waterfall Charts directly in your spreadsheet.
-
AutoChart Excel Add-in — This add-in will allow you to create, manipulate series ranges, and format all your charts at once. Making adjustments has never been easier!
-
myBrand Excel Add-in — Stores your favorite colors to the Excel Ribbon and allows you to color cells, shapes, and charts.
-
Peltier Tech Charts for Excel — A chart-building toolkit with the automated creation of difficult chart builds such as Histograms, Pareto, Marimekko, and many more.
Anything You Would Like To See?
There are a ton of things you can do with VBA and Excel charts. I attempted through this guide to tackle the most general ones, but please don’t hesitate to leave a comment if there is something that you would like to see added to the code in this VBA guide. Hopefully, you were able to find what you were looking for!
About The Author
Hey there! I’m Chris and I run TheSpreadsheetGuru website in my spare time. By day, I’m actually a finance professional who relies on Microsoft Excel quite heavily in the corporate world. I love taking the things I learn in the “real world” and sharing them with everyone here on this site so that you too can become a spreadsheet guru at your company.
Through my years in the corporate world, I’ve been able to pick up on opportunities to make working with Excel better and have built a variety of Excel add-ins, from inserting tickmark symbols to automating copy/pasting from Excel to PowerPoint. If you’d like to keep up to date with the latest Excel news and directly get emailed the most meaningful Excel tips I’ve learned over the years, you can sign up for my free newsletters. I hope I was able to provide you with some value today and I hope to see you back here soon!
— Chris
Founder, TheSpreadsheetGuru.com
Я не могла себе представить, что после тренинга за три месяца способна буду сделать то, что уже сделано
Я не могла себе представить, что после тренинга за три месяца способна буду сделать то, что уже сделано.
Я сделала ШАБЛОН договора с выбором реквизитов из файла, в котором они все хранятся, а потом началось…Заполнение счета, заполнение ТН, подстановка номера ТН и ее реквизитов в другой файл, в котором можно отследить оплату и т.д.
При заполнении ТН у меня делается списание материалов и много чего такого, что раньше делалось с помощью лишних телодвижений.
Короче я очень довольна тем, чему научилась, благодаря Дмитрию.
Вскоре, думаю заняться ФОРМАМИ, пока упрощаю, то что давно пора было упростить!!!!
Это лучшие занятия, которые я когда либо проходила
Я очень довольна пройденным тренингом, это лучшие занятия, которые я когда либо проходила, все очень доступно, интересно, высокий профессиональный уровень, обо всем можно сказать только в превосходной степени. На работе мне приходится обрабатывать большие объемы информации и полученные знания для меня очень важны. Спасибо, Дмитрий, очень надеюсь на продолжение обучения у Вас.
Наталья Медведева о практическом тренинге
За месяц изучил материал, который рассчитан примерно на семестр ВУЗовского обучения
Прекрасно сформированная последовательность подачи материала и наличие всего необходимого объема информации в данном тренинге дали мне возможность за месяц изучить материал, который (в соответствии с изучаемым мной самоучителем) рассчитан примерно на семестр ВУЗовского обучения. Плюс интересные факты, дополнительные «Фишки» и вообще наличие быстрой и качественной обратной связи преподавателем как в онлайн режиме, так и вне занятия. Спасибо Дмитрий за проделанную Вами работу и за профессиональный подход к обучению.
Николай Трыкин о практическом тренинге
Нет ничего лучше, чем наглядные примеры
Дмитрий, хочу еще раз сказать ОГРОМНОЕ спасибо за предоставленные примеры на вебинаре «Пользовательские формы и элементы управления». В моей работе в большинстве случаев приходится сталкиваться с построением отчетов сотрудниками и, чтобы избежать ошибок при вводе данных, я как раз и хотела воспользоваться пользовательскими формами, но знаний для этого было недостаточно. Всю эту информацию конечно можно найти в учебниках, и я не раз их читала, но нет ничего лучше, чем наглядные примеры. По ходу вебинара у меня рождались идеи воплощения того или другого продемонстрированного примера в моей работе. Теперь осталось воплотить это всё в жизнь!
Желаю всем коллегам, присутствовавшим на вебинаре, найти применение полученной информации и не останавливаться на достигнутом!
А от Дмитрия жду новых вебинаров и уроков в свободном доступе. У вас это ОТЛИЧНО получается!
Анна Васильева о мастер-классе
Изучала запоем, узнала очень много нового
Спасибо, Дмитрий!
Классный и полезный тренинг, рекомендую всем!
С VBA уже дело имела(изучала методом научного тыка). Курс очень понравился, иногда не знаешь, какие вопросы нужно задавать и мучаешься долго и нудно над элементарными, как оказалось, вещами.
Мне было не очень трудно, но очень интересно, изучала запоем, узнала очень много нового. После тренинга поняла, что мои макросы нужно все переписывать, так как оказалось, я не знаю некоторых очень нужных, базовых вещей.
Мне очень понравилась подача материала: просто, доходчиво, с пояснением нюансов и подводных камней.
Очень полезно видеть отладку кода, поиск ошибок по горячим следам. Мне лично уже пригодилось, облегчило жизнь.
Дмитрий, спасибо за терпение и развернутые ответы на очень тупые вопросы!
Екатерина Пилипец о практическом тренинге
Изменение параметров диаграммы
Очередное полностью практическое занятие. В этот раз оно уже пообъемнее и несколько сложнее, чем «Заполнение бланка документа», но это логично — от простых вещей постепенно двигаемся к более сложным.
Для просмотра видео необходимо
зарегистрироваться на сайте
Если вы уже зарегистрированы на сайте —
обновите страницу по этой ссылке или кнопкой F5