Excelovi grafikoni in grafi se uporabljajo za vizualni prikaz podatkov. V tej vadnici bomo obravnavali, kako uporabiti VBA za ustvarjanje in upravljanje grafikonov in elementov grafikona.
Ustvarite lahko vdelane grafikone na delovnem listu ali grafikone na lastnih listih grafikonov.
Ustvarjanje vdelanega grafikona z uporabo VBA
Imamo obseg A1: B4, ki vsebuje izvorne podatke, prikazane spodaj:
Grafikon lahko ustvarite z metodo ChartObjects.Add. Naslednja koda bo ustvarila vdelani grafikon na delovnem listu:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Zatemni vdelani grafikon kot ChartObjectNastavi embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Levo: = 180, Širina: = 300, Zgoraj: = 7, Višina: = 200)embeddedchart.Chart.SetSourceData Vir: = Sheets ("Sheet1"). Range ("A1: B4")End Sub |
Rezultat je:
Graf lahko ustvarite tudi z metodo Shapes.AddChart. Naslednja koda bo ustvarila vdelani grafikon na delovnem listu:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Zatemni vdelani grafikon kot oblikoNastavi embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Vir: = Sheets ("Sheet1"). Range ("A1: B4")End Sub |
Določanje vrste grafikona z uporabo VBA
Imamo obseg A1: B5, ki vsebuje izvorne podatke, prikazane spodaj:
Vrsto grafikona lahko določite z lastnostjo ChartType. Naslednja koda bo ustvarila tortni grafikon na delovnem listu, ker je bila lastnost ChartType nastavljena na xlPie:
123456789 | PodnavediteAChartType ()Zatemni črt kot ChartObjectNastavi chrt = Sheets ("Sheet1"). ChartObjects.Add (Levo: = 180, Širina: = 270, Zgoraj: = 7, Višina: = 210)chrt.Chart.SetSourceData Vir: = Sheets ("Sheet1"). Range ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub |
Rezultat je:
To so nekatere izmed priljubljenih vrst grafikonov, ki so običajno določene, čeprav obstajajo še druge:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlSurface
- xlBubble
- xlBarClustered
- xlColumnClustered
Dodajanje naslova grafikona z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Naslov grafikona morate najprej dodati z metodo Chart.SetElement, nato pa določiti besedilo naslova grafikona tako, da nastavite lastnost ChartTitle.Text.
Naslednja koda prikazuje, kako dodate naslov grafikona in določite besedilo naslova aktivnega grafikona:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Prodaja izdelka"End Sub |
Rezultat je:
Opomba: Najprej morate izbrati grafikon, da postane aktivni grafikon, da bo lahko uporabljal predmet ActiveChart v svoji kodi.
Spreminjanje barve ozadja grafikona z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Barvo ozadja celotnega grafikona lahko spremenite tako, da nastavite lastnost RGB predmeta FillFormat predmeta ChartArea. Naslednja koda bo grafikonu dala svetlo oranžno barvo ozadja:
12345 | SubAddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)End Sub |
Rezultat je:
Barvo ozadja celotnega grafikona lahko spremenite tudi tako, da nastavite lastnost ColorIndex predmeta Interior objekta ChartArea. Naslednja koda bo grafikonu dala oranžno barvo ozadja:
12345 | SubAddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub |
Rezultat je:
Opomba: Lastnost ColorIndex vam omogoča, da določite barvo na podlagi vrednosti od 1 do 56, vzeto iz prednastavljene palete, če si želite ogledati, katere vrednosti predstavljajo različne barve, kliknite tukaj.
Spreminjanje barve območja grafikona z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Barvo ozadja samo območja grafikona lahko spremenite tako, da nastavite lastnost RGB predmeta FillFormat predmeta PlotArea. Naslednja koda bo površini grafikona dala svetlo zeleno barvo ozadja:
12345 | Sub AddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)End Sub |
Rezultat je:
Dodajanje legende z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Legendo lahko dodate z metodo Chart.SetElement. Naslednja koda doda legendo na levi strani grafikona:
12345 | SubAddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)End Sub |
Rezultat je:
Položaj legende lahko določite na naslednje načine:
- msoElementLegendLeft - prikaže legendo na levi strani grafikona.
- msoElementLegendLeftOverlay - prekriva legendo na levi strani grafikona.
- msoElementLegendRight - prikaže legendo na desni strani grafikona.
- msoElementLegendRightOverlay - prekriva legendo na desni strani grafikona.
- msoElementLegendBottom - prikaže legendo na dnu grafikona.
- msoElementLegendTop - prikaže legendo na vrhu grafikona.
Dodajanje podatkovnih oznak z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Podatkovne oznake lahko dodate z metodo Chart.SetElement. Naslednja koda doda oznake podatkov na notranji konec grafikona:
12345 | SubAddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub |
Rezultat je:
Kako so oznake podatkov postavljene, lahko določite na naslednje načine:
- msoElementDataLabelShow - prikaz podatkovnih oznak.
- msoElementDataLabelRight - prikaže podatkovne oznake na desni strani grafikona.
- msoElementDataLabelLeft - prikaže podatkovne oznake na levi strani grafikona.
- msoElementDataLabelTop - prikaže podatkovne oznake na vrhu grafikona.
- msoElementDataLabelBestFit - določa najboljše prileganje.
- msoElementDataLabelBottom - prikaže podatkovne oznake na dnu grafikona.
- msoElementDataLabelCallout - prikaže podatkovne oznake kot oblaček.
- msoElementDataLabelCenter - prikaže podatkovne oznake na sredini.
- msoElementDataLabelInsideBase - prikaže podatkovne oznake na notranji bazi.
- msoElementDataLabelOutSideEnd - prikaže podatkovne oznake na zunanjem koncu grafikona.
- msoElementDataLabelInsideEnd - prikaže podatkovne oznake na notranjem koncu grafikona.
Dodajanje osi X in naslova v VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Naslov osi X in osi X lahko dodate z metodo Chart.SetElement. Naslednja koda doda grafikon osi X in X osi:
123456789 | Dodatno dodajanjeAnXAxisandXTitle ()Z ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalKončaj sEnd Sub |
Rezultat je:
Dodajanje osi Y in naslova v VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Naslov osi Y in osi Y lahko dodate z metodo Chart.SetElement. Naslednja koda doda grafikon osi Y in osi Y:
1234567 | Sub AddingAYAxisandYTitle ()Z ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalKončaj sEnd Sub |
Rezultat je:
Spreminjanje številske oblike osi
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Obliko številk osi lahko spremenite. Naslednja koda spremeni obliko številke osi y v valuto:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"End Sub |
Rezultat je:
Spreminjanje oblikovanja pisave v grafikonu
Na delovnem listu imamo izbran naslednji grafikon, kot je prikazano spodaj:
Oblikovanje celotne pisave grafikona lahko spremenite tako, da se sklicujete na predmet pisave in spremenite njegovo ime, težo pisave in velikost. Naslednja koda spremeni vrsto, težo in velikost pisave celotnega grafikona.
12345678910 | Sub ChangingTheFontFormatting ()Z ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Končaj s |
Rezultat je:
Brisanje grafikona z uporabo VBA
Na delovnem listu imamo izbran grafikon, kot je prikazano spodaj:
Za izbris tega grafikona lahko uporabimo naslednjo kodo:
12345 | Podbrisanje grafikona ()ActiveChart.Parent.DeleteEnd Sub |
Sklicuje se na zbirko ChartObjects
Do vseh vdelanih grafikonov na svojem delovnem listu ali v delovnem zvezku lahko dostopate s pomočjo zbirke ChartObjects. Spodaj imamo dva grafikona na istem listu:
Sklicali se bomo na zbirko ChartObjects, da bi obema grafikonoma na delovnem listu dali enako višino, širino, izbrisali mrežne črte, naredili enako barvo ozadja, dali grafikonom enako barvo območja ploskve in barvo črte območja ploskve enako. barva:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet ()Zatemni cht kot ChartObjectZa vsak cht v ActiveSheet.ChartObjectscht.Height = 144.85širina = 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)Naslednji chtEnd Sub |
Rezultat je:
Vstavljanje grafikona na lastni list grafikona
Imamo obseg A1: B6, ki vsebuje izvorne podatke, prikazane spodaj:
Grafikon lahko ustvarite z metodo Charts.Add. Naslednja koda bo ustvarila grafikon na svojem listu z grafikoni:
123456 | Sub InsertingAChartOnItsOwnChartSheet ()Listi ("List1"). Obseg ("A1: B6"). IzberiteLestvice.DodajEnd Sub |
Rezultat je:
Oglejte si nekaj drugih naših vaj za grafikone:
Grafikoni v Excelu
Ustvarite stolpčni grafikon v VBA