VBA diagramų ir grafikų vadovas

Turinys

„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

wave wave wave wave wave