VBA Ръководство за диаграми и графики

Съдържание

Диаграмите и графиките на 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"). Range ("A1: B4")End Sub

Резултатът е:

Можете също да създадете диаграма, като използвате метода Shapes.AddChart. Следният код ще създаде вградена диаграма на работния лист:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Затъмнете вградената диаграма като формаЗадайте embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Източник: = Sheets ("Sheet1"). Range ("A1: B4")End Sub

Задаване на тип диаграма с помощта на VBA

Имаме диапазона A1: B5, който съдържа изходните данни, показани по -долу:

Можете да зададете тип диаграма, като използвате свойството ChartType. Следният код ще създаде кръгова диаграма на работния лист, тъй като свойството ChartType е настроено на xlPie:

123456789 Sub SpecifyAChartType ()Dim chrt As ChartObjectЗадайте chrt = Sheets ("Sheet1"). ChartObjects.Add (вляво: = 180, ширина: = 270, отгоре: = 7, височина: = 210)chrt.Chart.SetSourceData Източник: = Sheets ("Sheet1"). Range ("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 на вътрешния обект на обекта 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 Sub AddingALegend ()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 Допълнително добавянеAYAxisandYTitle ()С 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 = Вярно.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Край с

Резултатът е:

Изтриване на диаграма с помощта на VBA

Имаме избрана диаграма в работния лист, както е показано по -долу:

Можем да използваме следния код, за да изтрием тази диаграма:

12345 Sub DeletingTheChart ()ActiveChart.Parent.DeleteEnd Sub

Позовавайки се на колекцията ChartObjects

Можете да получите достъп до всички вградени диаграми във вашия работен лист или работна книга, като се обърнете към колекцията ChartObjects. Имаме две диаграми на същия лист, показани по -долу:

Ще се позовем на колекцията ChartObjects, за да дадем на двете диаграми на работния лист еднаква височина, ширина, да изтрием линиите на мрежата, да направим цвета на фона същия, да дадем на диаграмите същия цвят на площта на графиката и да направим цвета на линията на областта на графиката същия цвят:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht As 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)Следващ chtEnd Sub

Резултатът е:

Вмъкване на диаграма на нейния собствен лист с диаграми

Имаме диапазон A1: B6, който съдържа изходните данни, показани по -долу:

Можете да създадете диаграма, като използвате метода Charts.Add. Следният код ще създаде диаграма на свой собствен лист с диаграми:

123456 Под вмъкване на AChartOnItsOwnChartSheet ()Листове ("Sheet1"). Диапазон ("A1: B6"). ИзберетеГрафики.ДобавянеEnd Sub

Резултатът е:

Вижте някои от другите ни уроци по графики:

Диаграми в Excel

Създайте лентова диаграма във VBA

wave wave wave wave wave