VBA -guide for diagrammer og grafer

Innholdsfortegnelse

Excel -diagrammer og grafer brukes til visuelt å vise data. I denne opplæringen skal vi dekke hvordan du bruker VBA til å lage og manipulere diagrammer og diagramelementer.

Du kan lage innebygde diagrammer i et regneark eller diagrammer på sine egne diagramark.

Opprette et innebygd diagram ved hjelp av VBA

Vi har området A1: B4 som inneholder kildedataene, vist nedenfor:

Du kan lage et diagram ved hjelp av ChartObjects.Add -metoden. Følgende kode vil opprette et innebygd diagram i regnearket:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectAngi embeddedchart = Sheets ("Sheet1"). ChartObjects.Add (Venstre: = 180, Bredde: = 300, Topp: = 7, Høyde: = 200)embeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B4")Slutt Sub

Resultatet er:

Du kan også lage et diagram ved hjelp av Shapes.AddChart -metoden. Følgende kode vil opprette et innebygd diagram i regnearket:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Dim innebygd diagram som formAngi embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B4")Slutt Sub

Spesifisere en diagramtype ved hjelp av VBA

Vi har området A1: B5 som inneholder kildedataene, vist nedenfor:

Du kan angi en diagramtype ved hjelp av egenskapen ChartType. Følgende kode vil lage et kakediagram på regnearket siden ChartType -egenskapen er satt til xlPie:

123456789 Sub SpecifyAChartType ()Dim chrt As ChartObjectSett chrt = Sheets ("Sheet1"). ChartObjects.Add (Venstre: = 180, Bredde: = 270, Topp: = 7, Høyde: = 210)chrt.Chart.SetSourceData Source: = Sheets ("Sheet1"). Område ("A1: B5")chrt.Chart.ChartType = xlPieSlutt Sub

Resultatet er:

Dette er noen av de populære diagramtypene som vanligvis er spesifisert, selv om det er andre:

  • xlOmråde
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlSurface
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Legge til en diagramtittel ved hjelp av VBA

Vi har et diagram valgt i regnearket som vist nedenfor:

Du må legge til en diagramtittel først ved hjelp av Chart.SetElement -metoden og deretter angi teksten til diagramtittelen ved å angi egenskapen ChartTitle.Text.

Følgende kode viser deg hvordan du legger til en diagramtittel og angir teksten til tittelen på det aktive diagrammet:

123456 Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Salget av produktet"Slutt Sub

Resultatet er:

Merk: Du må velge diagrammet først for å gjøre det til det aktive diagrammet for å kunne bruke ActiveChart -objektet i koden din.

Endre kartets bakgrunnsfarge ved hjelp av VBA

Vi har et diagram valgt i regnearket som vist nedenfor:

Du kan endre bakgrunnsfargen på hele diagrammet ved å angi RGB -egenskapen til FillFormat -objektet til ChartArea -objektet. Følgende kode vil gi diagrammet en lys oransje bakgrunnsfarge:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Slutt Sub

Resultatet er:

Du kan også endre bakgrunnsfargen på hele diagrammet ved å angi egenskapen ColorIndex for interiørobjektet til ChartArea -objektet. Følgende kode vil gi diagrammet en oransje bakgrunnsfarge:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Slutt Sub

Resultatet er:

Merk: Egenskapen ColorIndex lar deg spesifisere en farge basert på en verdi fra 1 til 56, trukket fra den forhåndsinnstilte paletten, for å se hvilke verdier som representerer de forskjellige fargene, klikk her.

Endre fargen på diagramplotområdet ved hjelp av VBA

Vi har et diagram valgt i regnearket som vist nedenfor:

Du kan endre bakgrunnsfargen på plottområdet på diagrammet ved å angi egenskapen RGB for FillFormat -objektet til PlotArea -objektet. Følgende kode vil gi plottområdet på diagrammet en lysegrønn bakgrunnsfarge:

12345 Sub AddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Slutt Sub

Resultatet er:

Legge til en forklaring ved hjelp av VBA

Vi har et diagram valgt i regnearket, som vist nedenfor:

Du kan legge til en forklaring ved hjelp av Chart.SetElement -metoden. Følgende kode legger til en forklaring til venstre i diagrammet:

12345 Sub AddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)Slutt Sub

Resultatet er:

Du kan angi plasseringen av forklaringen på følgende måter:

  • msoElementLegendLeft - viser forklaringen på venstre side av diagrammet.
  • msoElementLegendLeftOverlay - overlapper forklaringen på venstre side av diagrammet.
  • msoElementLegendRight - viser forklaringen på høyre side av diagrammet.
  • msoElementLegendRightOverlay - legger legenden på høyre side av diagrammet.
  • msoElementLegendBottom - viser forklaringen nederst på diagrammet.
  • msoElementLegendTop - viser forklaringen øverst på diagrammet.

Legge til datatiketter ved hjelp av VBA

Vi har et diagram valgt i regnearket, som vist nedenfor:

Du kan legge til datatiketter ved hjelp av Chart.SetElement -metoden. Følgende kode legger til datatiketter på innsiden av diagrammet:

12345 Sub AddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndSlutt Sub

Resultatet er:

Du kan angi hvordan datatikettene plasseres på følgende måter:

  • msoElementDataLabelShow - vis datatiketter.
  • msoElementDataLabelRight - viser datatiketter til høyre i diagrammet.
  • msoElementDataLabelLeft - viser datatiketter til venstre i diagrammet.
  • msoElementDataLabelTop - viser datatiketter øverst i diagrammet.
  • msoElementDataLabelBestFit - bestemmer den beste passformen.
  • msoElementDataLabelBottom - viser datatiketter nederst i diagrammet.
  • msoElementDataLabelCallout - viser datatiketter som en infomelding.
  • msoElementDataLabelCenter - viser datatiketter på midten.
  • msoElementDataLabelInsideBase - viser datatiketter på innsiden.
  • msoElementDataLabelOutSideEnd - viser datatiketter på utsiden av diagrammet.
  • msoElementDataLabelInsideEnd - viser datatiketter på innsiden av diagrammet.

Legger til en X-akse og tittel i VBA

Vi har et diagram valgt i regnearket, som vist nedenfor:

Du kan legge til en X-akse og X-aksetittel ved hjelp av Chart.SetElement-metoden. Følgende kode legger til en X-akse og X-aksetittel i diagrammet:

123456789 Sub AddingAnXAxisandXTitle ()Med ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalSlutt medSlutt Sub

Resultatet er:

Legger til en Y-akse og tittel i VBA

Vi har et diagram valgt i regnearket, som vist nedenfor:

Du kan legge til en Y-akse og Y-akse tittel ved hjelp av Chart.SetElement-metoden. Følgende kode legger til en Y-akse og Y-akse-tittel i diagrammet:

1234567 Sub AddingAYAxisandYTitle ()Med ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalSlutt medSlutt Sub

Resultatet er:

Endre tallformatet for en akse

Vi har et diagram valgt i regnearket, som vist nedenfor:

Du kan endre tallformatet til en akse. Følgende kode endrer tallformatet til y-aksen til valuta:

12345 Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"Slutt Sub

Resultatet er:

Endre formateringen av skrifttypen i et diagram

Vi har følgende diagram valgt i regnearket som vist nedenfor:

Du kan endre formateringen av hele diagramfonten ved å referere til fontobjektet og endre navn, skriftvekt og størrelse. Følgende kode endrer typen, vekten og størrelsen på skriften i hele diagrammet.

12345678910 Sub ChangingTheFontFormatting ()Med ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Slutt med

Resultatet er:

Slette et diagram ved hjelp av VBA

Vi har et diagram valgt i regnearket, som vist nedenfor:

Vi kan bruke følgende kode for å slette dette diagrammet:

12345 Sub DeletingTheChart ()ActiveChart.Parent.DeleteSlutt Sub

Henviser til ChartObjects -samlingen

Du får tilgang til alle de innebygde diagrammene i regnearket eller arbeidsboken ved å referere til ChartObjects -samlingen. Vi har to diagrammer på samme ark vist nedenfor:

Vi vil referere til ChartObjects -samlingen for å gi begge diagrammene i regnearket samme høyde, bredde, slette rutenettlinjene, gjøre bakgrunnsfargen den samme, gi diagrammene den samme plottarealfargen og gjøre plottareallinjefargen den samme farge:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht As ChartObjectFor hver cht i ActiveSheet.ChartObjectshøyde = 144,85bredde = 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)Neste kapSlutt Sub

Resultatet er:

Sette inn et diagram på sitt eget diagramark

Vi har området A1: B6 som inneholder kildedataene, vist nedenfor:

Du kan lage et diagram ved hjelp av metoden Charts.Add. Følgende kode vil lage et diagram på sitt eget kartark:

123456 Sub InsertingAChartOnItsOwnChartSheet ()Ark ("Ark1"). Område ("A1: B6"). VelgDiagrammer. Legg tilSlutt Sub

Resultatet er:

Se noen av våre andre kartopplæringsprogrammer:

Diagrammer i Excel

Lag et stolpediagram i VBA

wave wave wave wave wave