„Excel“ diagramos ir grafikai naudojami vizualiai rodyti duomenis. Šioje pamokoje aptarsime, kaip naudoti VBA kuriant ir valdant diagramas ir diagramos elementus.
Galite sukurti įterptas diagramas darbalapyje arba diagramas savo diagramų lapuose.
Įterptosios diagramos kūrimas naudojant VBA
Turime diapazoną A1: B4, kuriame yra toliau nurodyti šaltinio duomenys:
Diagramą galite sukurti naudodami ChartObjects.Add metodą. Šis kodas sukurs įterptą diagramą darbalapyje:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Įterpti įterptąją diagramą kaip „ChartObject“Nustatykite embeddedchart = Sheets („Sheet1“). „ChartObjects.Add“ (kairė: = 180, plotis: = 300, viršuje: = 7, aukštis: = 200)embeddedchart.Chart.SetSourceData Šaltinis: = Lakštai ("Sheet1"). Diapazonas ("A1: B4")Pabaiga Sub |
Rezultatas yra toks:
Diagramą taip pat galite sukurti naudodami „Shapes.AddChart“ metodą. Šis kodas sukurs įterptą diagramą darbalapyje:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Įterpti įterptąją diagramą kaip formąSet embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Šaltinis: = Lakštai ("Sheet1"). Diapazonas ("A1: B4")Pabaiga Sub |
Diagramos tipo nurodymas naudojant VBA
Mes turime diapazoną A1: B5, kuriame yra toliau nurodyti šaltinio duomenys:
Naudodami ypatybę ChartType galite nurodyti diagramos tipą. Šis kodas sukurs skritulinę diagramą darbalapyje, nes „ChartType“ ypatybė nustatyta kaip „xlPie“:
123456789 | Sub SpecifyAChartType ()Dim chrt kaip ChartObjectNustatykite chrt = Sheets („Sheet1“). ChartObjects.Add (kairė: = 180, plotis: = 270, viršuje: = 7, aukštis: = 210)chrt.Chart.SetSourceData Šaltinis: = Lakštai ("Sheet1"). Diapazonas ("A1: B5")chrt.Chart.ChartType = xlPiePabaiga Sub |
Rezultatas yra toks:
Tai yra keletas populiarių diagramų tipų, kurie paprastai nurodomi, nors yra ir kitų:
- xlArea
- xlPie
- xlLine
- xlRadaras
- xlXYScatter
- xlPaviršius
- xlBubble
- xlBarClastered
- xlColumnClastered
Diagramos pavadinimo pridėjimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Pirmiausia turite pridėti diagramos pavadinimą naudodami Chart.SetElement metodą, tada nurodykite diagramos pavadinimo tekstą, nustatydami ypatybę ChartTitle.Text.
Šis kodas parodo, kaip pridėti diagramos pavadinimą ir nurodyti aktyvios diagramos pavadinimo tekstą:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Produkto pardavimas"Pabaiga Sub |
Rezultatas yra toks:
Pastaba: pirmiausia turite pasirinkti diagramą, kad ji taptų aktyviąja diagrama, kad jūsų kodas galėtų naudoti „ActiveChart“ objektą.
Diagramos fono spalvos keitimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Galite pakeisti visos diagramos fono spalvą nustatydami „ChartArea“ objekto „FillFormat“ objekto RGB ypatybę. Šis kodas diagramai suteiks šviesiai oranžinę fono spalvą:
12345 | Papildomas pridėjimasABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Pabaiga Sub |
Rezultatas yra toks:
Taip pat galite pakeisti visos diagramos fono spalvą nustatydami „ChartArea“ objekto „Interior“ objekto ypatybę „ColorIndex“. Šis kodas diagramai suteiks oranžinę fono spalvą:
12345 | Papildomas pridėjimasABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Pabaiga Sub |
Rezultatas yra toks:
Pastaba: „ColorIndex“ ypatybė leidžia nurodyti spalvą pagal vertę nuo 1 iki 56, nubrėžtą iš iš anksto nustatytos paletės, kad pamatytumėte, kurios vertės atspindi skirtingas spalvas, spustelėkite čia.
Diagramos grafiko ploto spalvos keitimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Galite pakeisti tik diagramos sklypo srities fono spalvą, nustatydami „PlotArea“ objekto „FillFormat“ objekto RGB ypatybę. Šis kodas diagramos plotui suteiks šviesiai žalią fono spalvą:
12345 | Papildomas pridėjimasABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Pabaiga Sub |
Rezultatas yra toks:
Legendos pridėjimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Legendą galite pridėti naudodami Chart.SetElement metodą. Šis kodas prideda legendą kairėje diagramos pusėje:
12345 | Papildomas papildymasALegend ()ActiveChart.SetElement (msoElementLegendLeft)Pabaiga Sub |
Rezultatas yra toks:
Legendos vietą galite nurodyti šiais būdais:
- msoElementLegendLeft - rodo legendą kairėje diagramos pusėje.
- msoElementLegendLeftOverlay - užrašas kairėje diagramos pusėje.
- msoElementLegendRight - pateikia legendą dešinėje diagramos pusėje.
- msoElementLegendRightOverlay - uždengia legendą dešinėje diagramos pusėje.
- msoElementLegendBottom - diagramoje pateikiama legenda.
- msoElementLegendTop - pateikiama legenda diagramos viršuje.
Duomenų etikečių pridėjimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Duomenų etiketes galite pridėti naudodami Chart.SetElement metodą. Šis kodas prideda duomenų etiketes prie vidinio diagramos galo:
12345 | Papildomas pridėjimasADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndPabaiga Sub |
Rezultatas yra toks:
Šiais būdais galite nurodyti, kaip dedamos duomenų etiketės:
- msoElementDataLabelShow - rodyti duomenų etiketes.
- msoElementDataLabelRight - pateikia duomenų etiketes diagramos dešinėje.
- msoElementDataLabelLeft - pateikia duomenų etiketes kairėje diagramos pusėje.
- msoElementDataLabelTop - pateikia duomenų etiketes diagramos viršuje.
- msoElementDataLabelBestFit - nustato tinkamiausią.
- msoElementDataLabelBottom - pateikia duomenų etiketes diagramos apačioje.
- msoElementDataLabelCallout - pateikia duomenų etiketes kaip figūrinę išnašą.
- msoElementDataLabelCenter - rodo duomenų etiketes centre.
- msoElementDataLabelInsideBase - rodo duomenų etiketes vidinėje bazėje.
- msoElementDataLabelOutSideEnd - rodo duomenų etiketes išoriniame diagramos gale.
- msoElementDataLabelInsideEnd - pateikia duomenų etiketes vidiniame diagramos gale.
X ašies ir pavadinimo pridėjimas VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Galite pridėti X ašies ir X ašies pavadinimą naudodami Chart.SetElement metodą. Šis kodas diagramai prideda X ašies ir X ašies pavadinimą:
123456789 | Sub AddingAnXAxisandXTitle ()Su „ActiveChart“.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalPabaiga suPabaiga Sub |
Rezultatas yra toks:
Y ašies ir pavadinimo pridėjimas VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Galite pridėti Y ašies ir Y ašies pavadinimą naudodami Chart.SetElement metodą. Šis kodas diagramai prideda Y ašies ir Y ašies pavadinimą:
1234567 | Papildomas pridėjimasAYAxisandYTitle ()Su „ActiveChart“.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalPabaiga suPabaiga Sub |
Rezultatas yra toks:
Ašies skaičiaus formato keitimas
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Galite pakeisti ašies skaičių formatą. Šis kodas pakeičia y ašies skaičių formatą į valiutą:
12345 | Keičiamas antras numerisFormatas ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"Pabaiga Sub |
Rezultatas yra toks:
Šrifto formato keitimas diagramoje
Mes pasirinkome šią diagramą darbalapyje, kaip parodyta žemiau:
Galite pakeisti viso diagramos šrifto formatą, remdamiesi šrifto objektu ir pakeisdami jo pavadinimą, šrifto svorį ir dydį. Šis kodas keičia visos diagramos šrifto tipą, svorį ir dydį.
12345678910 | Pakeisti „TheFontFormatting“ ()Su „ActiveChart“.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Tiesa.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Pabaiga su |
Rezultatas yra toks:
Diagramos ištrynimas naudojant VBA
Mes pasirinkome diagramą darbalapyje, kaip parodyta žemiau:
Norėdami ištrinti šią diagramą, galime naudoti šį kodą:
12345 | Po ištrynimasTheChart ()ActiveChart.Parent.DeletePabaiga Sub |
Remiantis „ChartObjects“ kolekcija
Galite pasiekti visas įterptas diagramas savo darbalapyje arba darbaknygėje, remdamiesi „ChartObjects“ kolekcija. Mes turime dvi diagramas tame pačiame lape, parodyta žemiau:
Remdamiesi „ChartObjects“ kolekcija, norime, kad abi darbalapio diagramos būtų vienodo aukščio, pločio, ištrintų tinklelio linijas, kad fono spalva ta pati, diagramoms būtų suteikta ta pati sklypo ploto spalva ir sklypo srities linijos spalva ta pati spalva:
12345678910111213141516 | Antrinis nukreipimasToAllTheChartsOnASheet ()Dim cht Kaip ChartObjectUž kiekvieną cht „ActiveSheet.ChartObjects“cht. Ūgis = 144,85cht. Plotis = 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)Kitas chtPabaiga Sub |
Rezultatas yra toks:
Diagramos įterpimas į savo diagramos lapą
Mes turime diapazoną A1: B6, kuriame yra toliau nurodyti šaltinio duomenys:
Diagramą galite sukurti naudodami Charts.Add metodą. Šis kodas sukurs diagramą savo diagramos lape:
123456 | Įterpimas „SubhartOnItsOwnChartSheet“ ()Skaičiuoklės („Sheet1“). Diapazonas („A1: B6“). PasirinkiteDiagramos. PridėtiPabaiga Sub |
Rezultatas yra toks:
Peržiūrėkite kai kurias kitas mūsų diagramų sudarymo pamokas:
Diagramos „Excel“
Sukurkite juostinę diagramą VBA