Excel grafikoni i grafikoni koriste se za vizualni prikaz podataka. U ovom ćemo vodiču pokriti kako koristiti VBA za stvaranje i upravljanje grafikonima i elementima grafikona.
Možete stvoriti ugrađene grafikone na radnom listu ili grafikone na vlastitim listovima grafikona.
Stvaranje ugrađenog grafikona pomoću VBA
Imamo raspon A1: B4 koji sadrži izvorne podatke, prikazane u nastavku:
Grafikon možete stvoriti pomoću metode ChartObjects.Add. Sljedeći kôd stvorit će ugrađeni grafikon na radnom listu:
12345678 | Pod CreateEmbeddedChartUsingChartObject ()Zatamni ugrađeni grafikon kao ChartObjectPostavi embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (lijevo: = 180, širina: = 300, vrh: = 7, visina: = 200)embeddedchart.Chart.SetSourceData Izvor: = Sheets ("Sheet1"). Raspon ("A1: B4")Kraj podm |
Rezultat je:
Također možete stvoriti grafikon pomoću metode Shapes.AddChart. Sljedeći kôd stvorit će ugrađeni grafikon na radnom listu:
12345678 | Pod CreateEmbeddedChartUsingShapesAddChart ()Zatamni ugrađeni grafikon kao oblikPostavi embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Izvor: = Sheets ("Sheet1"). Raspon ("A1: B4")Kraj podm |
Određivanje vrste grafikona pomoću VBA
Imamo raspon A1: B5 koji sadrži izvorne podatke, dolje prikazane:
Vrstu grafikona možete odrediti pomoću svojstva ChartType. Sljedeći kôd će stvoriti tortni grafikon na radnom listu budući da je svojstvo ChartType postavljeno na xlPie:
123456789 | PododrediteAChartType ()Zatamni crtu kao ChartObjectPostavi chrt = listove ("list1"). ChartObjects.Add (lijevo: = 180, širina: = 270, vrh: = 7, visina: = 210)chrt.Chart.SetSourceData Izvor: = Sheets ("Sheet1"). Raspon ("A1: B5")chrt.Chart.ChartType = xlPieKraj podm |
Rezultat je:
Ovo su neke od popularnih vrsta grafikona koje se obično navode, iako postoje i druge:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlPovršina
- xlBubble
- xlBarClustered
- xlColumnClustered
Dodavanje naslova grafikona pomoću VBA
Na radnom listu imamo odabran grafikon kako je prikazano u nastavku:
Naslov grafikona morate prvo dodati metodom Chart.SetElement, a zatim odrediti tekst naslova grafikona postavljanjem svojstva ChartTitle.Text.
Sljedeći kôd pokazuje kako dodati naslov grafikona i odrediti tekst naslova aktivnog grafikona:
123456 | Dodatno dodavanjeAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Prodaja proizvoda"Kraj podm |
Rezultat je:
Napomena: Najprije morate odabrati grafikon kako bi postao aktivni grafikon kako bi mogao koristiti objekt ActiveChart u svom kodu.
Promjena boje pozadine grafikona pomoću VBA
Na radnom listu imamo odabran grafikon kako je prikazano u nastavku:
Boju pozadine cijelog grafikona možete promijeniti postavljanjem RGB svojstva objekta FillFormat objekta ChartArea. Sljedeći kôd grafikonu daje svijetlo narančastu boju pozadine:
12345 | Dodatno dodavanjeBackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Kraj podm |
Rezultat je:
Također možete promijeniti boju pozadine cijelog grafikona postavljanjem svojstva ColorIndex objekta Interior objekta ChartArea. Sljedeći kôd će grafikonu dati narančastu boju pozadine:
12345 | Dodatno dodavanjeBackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Kraj podm |
Rezultat je:
Napomena: Svojstvo ColorIndex omogućuje vam da odredite boju na temelju vrijednosti od 1 do 56, izvučene iz unaprijed zadane palete, da vidite koje vrijednosti predstavljaju različite boje, kliknite ovdje.
Promjena boje područja grafikona pomoću VBA
Na radnom listu imamo odabran grafikon kako je prikazano u nastavku:
Možete promijeniti boju pozadine samo područja iscrtavanja grafikona postavljanjem RGB svojstva objekta FillFormat objekta PlotArea. Sljedeći kôd daje površini grafikona svjetlozelenu boju pozadine:
12345 | Dodatno dodavanjeBackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Kraj podm |
Rezultat je:
Dodavanje legende pomoću VBA -a
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Legendu možete dodati pomoću metode Chart.SetElement. Sljedeći kôd dodaje legendu s lijeve strane grafikona:
12345 | Dodatno dodavanjeALegend ()ActiveChart.SetElement (msoElementLegendLeft)Kraj podm |
Rezultat je:
Položaj legende možete odrediti na sljedeće načine:
- msoElementLegendLeft - prikazuje legendu s lijeve strane grafikona.
- msoElementLegendLeftOverlay - prekriva legendu s lijeve strane grafikona.
- msoElementLegendRight - prikazuje legendu s desne strane grafikona.
- msoElementLegendRightOverlay - prekriva legendu s desne strane grafikona.
- msoElementLegendBottom - prikazuje legendu na dnu grafikona.
- msoElementLegendTop - prikazuje legendu na vrhu grafikona.
Dodavanje oznaka podataka pomoću VBA
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Oznake podataka možete dodati pomoću metode Chart.SetElement. Sljedeći kôd dodaje oznake podataka na unutarnji kraj grafikona:
12345 | Dodatno dodavanjeADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndKraj podm |
Rezultat je:
Možete postaviti način na koji su oznake podataka postavljene na sljedeće načine:
- msoElementDataLabelShow - prikazuje oznake podataka.
- msoElementDataLabelRight - prikazuje oznake podataka s desne strane grafikona.
- msoElementDataLabelLeft - prikazuje oznake podataka s lijeve strane grafikona.
- msoElementDataLabelTop - prikazuje oznake podataka pri vrhu grafikona.
- msoElementDataLabelBestFit - određuje najbolje prilagođavanje.
- msoElementDataLabelBottom - prikazuje oznake podataka pri dnu grafikona.
- msoElementDataLabelCallout - prikazuje oznake podataka kao dodatni opis.
- msoElementDataLabelCenter - prikazuje podatkovne oznake u središtu.
- msoElementDataLabelInsideBase - prikazuje oznake podataka na unutarnjoj bazi.
- msoElementDataLabelOutSideEnd - prikazuje oznake podataka na vanjskom kraju grafikona.
- msoElementDataLabelInsideEnd - prikazuje oznake podataka na unutarnjem kraju grafikona.
Dodavanje osi X i naslova u VBA
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Naslov osi X i osi X možete dodati pomoću metode Chart.SetElement. Sljedeći kôd dodaje naslov osi X i osi na grafikon:
123456789 | Dodatno dodavanjeAnXAxisandXTitle ()Uz ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalZavrši sKraj podm |
Rezultat je:
Dodavanje osi Y i naslova u VBA
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Naslov Y-osi i Y-osi možete dodati pomoću metode Chart.SetElement. Sljedeći kôd dodaje grafikonu naslov Y i Y osi:
1234567 | Dodatno dodavanjeAYAxisandYTitle ()Uz ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalZavrši sKraj podm |
Rezultat je:
Promjena formata broja osi
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Možete promijeniti format broja osi. Sljedeći kôd mijenja format broja osi y u valutu:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"Kraj podm |
Rezultat je:
Promjena oblikovanja fonta na grafikonu
Sljedeći grafikon smo odabrali na radnom listu kao što je prikazano u nastavku:
Možete promijeniti oblikovanje cijelog fonta grafikona pozivanjem na objekt fonta i promjenom njegovog naziva, težine fonta i veličine. Sljedeći kôd mijenja vrstu, težinu i veličinu fonta cijelog grafikona.
12345678910 | Sub ChangingTheFontFormatting ()Uz ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".Područje grafikona.Format.TextFrame2.TextRange.Font.Bold = True.Područje grafikona.Format.TextFrame2.TextRange.Font.Size = 14Završi s |
Rezultat je:
Brisanje grafikona pomoću VBA
Na radnom listu imamo odabran grafikon, kao što je prikazano u nastavku:
Za brisanje ovog grafikona možemo koristiti sljedeći kôd:
12345 | Podbrisanje grafikona ()ActiveChart.Parent.DeleteKraj podm |
Pozivajući se na zbirku ChartObjects
Svim ugrađenim grafikonima na radnom listu ili radnoj knjizi možete pristupiti ako pogledate zbirku ChartObjects. Imamo dva grafikona na istom listu prikazanom ispod:
Upućivat ćemo na zbirku ChartObjects kako bismo dali oba grafikona na radnom listu jednaku visinu, širinu, izbrisali crte mreže, učinili boju pozadine istom, dali grafikonima istu boju područja grafikona i učinili boju linije crte grafikona istom boja:
12345678910111213141516 | Sub ReferringToAllTheChartsOnASheet ()Zatamni kao ChartObjectZa svaki cht u ActiveSheet.ChartObjectscht.Visina = 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)Sljedeće poglKraj podm |
Rezultat je:
Umetanje grafikona na vlastiti list grafikona
Imamo raspon A1: B6 koji sadrži izvorne podatke, prikazane u nastavku:
Grafikon možete stvoriti pomoću metode Charts.Add. Sljedeći kôd će stvoriti grafikon na vlastitom listu grafikona:
123456 | Pod umetanjeAchartOnItsOwnChartSheet ()Listovi ("List1"). Raspon ("A1: B6"). OdaberiteGrafikoni.DodajKraj podm |
Rezultat je:
Pogledajte neke od naših drugih vodiča za crtanje:
Grafikoni u Excelu
Izradite trakasti grafikon u VBA -i