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