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