Ghid VBA pentru diagrame și grafice

Cuprins

Graficele și graficele Excel sunt utilizate pentru a afișa vizual date. În acest tutorial, vom analiza modul de utilizare a VBA pentru a crea și manipula diagrame și elemente ale diagramei.

Puteți crea diagrame încorporate într-o foaie de lucru sau diagrame pe propriile foi de diagrame.

Crearea unei diagrame încorporate utilizând VBA

Avem gama A1: B4 care conține datele sursă, prezentate mai jos:

Puteți crea o diagramă utilizând metoda ChartObjects.Add. Următorul cod va crea o diagramă încorporată pe foaia de lucru:

12345678 Sub CreateEmbeddedChartUsingChartObject ()Atenuați graficul încorporat ca obiect ChartSetați graficul încorporat = Foi ("Sheet1"). ChartObjects.Add (Stânga: = 180, Lățime: = 300, Sus: = 7, Înălțime: = 200)embeddedchart.Chart.SetSourceData Source: = Foi ("Sheet1"). Range ("A1: B4")Sfârșitul Sub

Rezultatul este:

De asemenea, puteți crea un grafic folosind metoda Shapes.AddChart. Următorul cod va crea o diagramă încorporată pe foaia de lucru:

12345678 Sub CreateEmbeddedChartUsingShapesAddChart ()Atenuați graficul încorporat ca formăSet embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Source: = Foi ("Sheet1"). Range ("A1: B4")Sfârșitul Sub

Specificarea unui tip de diagramă utilizând VBA

Avem gama A1: B5 care conține datele sursă, prezentate mai jos:

Puteți specifica un tip de diagramă utilizând proprietatea ChartType. Următorul cod va crea o diagramă circulară pe foaia de lucru, deoarece proprietatea ChartType a fost setată la xlPie:

123456789 Sub SpecifyAChartType ()Dim chrt ca ChartObjectSetați chrt = Foi ("Sheet1"). ChartObjects.Add (Stânga: = 180, Lățime: = 270, Sus: = 7, Înălțime: = 210)chrt.Chart.SetSourceData Source: = Foi ("Sheet1"). Range ("A1: B5")chrt.Chart.ChartType = xlPieSfârșitul Sub

Rezultatul este:

Acestea sunt câteva dintre tipurile populare de diagrame care sunt de obicei specificate, deși există și altele:

  • xlArea
  • xlPie
  • xlLine
  • xlRadar
  • xlXYScatter
  • xlSurface
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Adăugarea unui titlu de diagramă utilizând VBA

Avem o diagramă selectată în foaia de lucru așa cum se arată mai jos:

Trebuie să adăugați mai întâi un titlu al graficului utilizând metoda Chart.SetElement și apoi să specificați textul titlului graficului setând proprietatea ChartTitle.Text.

Următorul cod vă arată cum să adăugați un titlu al diagramei și să specificați textul titlului diagramei active:

123456 Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Vânzările produsului"Sfârșitul Sub

Rezultatul este:

Notă: Trebuie să selectați mai întâi diagrama pentru a face din Diagrama activă pentru a putea utiliza obiectul ActiveChart din codul dvs.

Schimbarea culorii de fundal a diagramei utilizând VBA

Avem o diagramă selectată în foaia de lucru așa cum se arată mai jos:

Puteți modifica culoarea de fundal a întregului grafic setând proprietatea RGB a obiectului FillFormat al obiectului ChartArea. Următorul cod va da graficului o culoare de fundal portocalie deschisă:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)Sfârșitul Sub

Rezultatul este:

De asemenea, puteți modifica culoarea de fundal a întregului grafic setând proprietatea ColorIndex a obiectului Interior al obiectului ChartArea. Următorul cod va da graficului o culoare de fundal portocalie:

12345 Sub AddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40Sfârșitul Sub

Rezultatul este:

Notă: Proprietatea ColorIndex vă permite să specificați o culoare bazată pe o valoare de la 1 la 56, extrasă din paleta prestabilită, pentru a vedea ce valori reprezintă diferitele culori, faceți clic aici.

Schimbarea culorii zonei graficului grafic utilizând VBA

Avem o diagramă selectată în foaia de lucru așa cum se arată mai jos:

Puteți schimba culoarea de fundal doar a zonei de grafic a diagramei, setând proprietatea RGB a obiectului FillFormat al obiectului PlotArea. Următorul cod va da zonei de grafic a diagramei o culoare de fundal verde deschis:

12345 Sub AddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Sfârșitul Sub

Rezultatul este:

Adăugarea unei legende folosind VBA

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Puteți adăuga o legendă folosind metoda Chart.SetElement. Următorul cod adaugă o legendă în stânga graficului:

12345 Sub AdăugareALegend ()ActiveChart.SetElement (msoElementLegendLeft)Sfârșitul Sub

Rezultatul este:

Puteți specifica poziția legendei în următoarele moduri:

  • msoElementLegendLeft - afișează legenda în partea stângă a diagramei.
  • msoElementLegendLeftOverlay - suprapune legenda din partea stângă a diagramei.
  • msoElementLegendRight - afișează legenda în partea dreaptă a diagramei.
  • msoElementLegendRightOverlay - suprapune legenda din partea dreaptă a diagramei.
  • msoElementLegendBottom - afișează legenda în partea de jos a graficului.
  • msoElementLegendTop - afișează legenda în partea de sus a graficului.

Adăugarea etichetelor de date folosind VBA

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Puteți adăuga etichete de date folosind metoda Chart.SetElement. Următorul cod adaugă etichete de date la capătul interior al graficului:

12345 Sub AdăugareADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndSfârșitul Sub

Rezultatul este:

Puteți specifica modul în care sunt poziționate etichetele de date în următoarele moduri:

  • msoElementDataLabelShow - afișează etichete de date.
  • msoElementDataLabelRight - afișează etichete de date în partea dreaptă a diagramei.
  • msoElementDataLabelLeft - afișează etichete de date în stânga graficului.
  • msoElementDataLabelTop - afișează etichete de date în partea de sus a graficului.
  • msoElementDataLabelBestFit - determină cea mai bună potrivire.
  • msoElementDataLabelBottom - afișează etichete de date în partea de jos a graficului.
  • msoElementDataLabelCallout - afișează etichetele de date ca un apel.
  • msoElementDataLabelCenter - afișează etichete de date în centru.
  • msoElementDataLabelInsideBase - afișează etichete de date pe baza interioară.
  • msoElementDataLabelOutSideEnd - afișează etichete de date la capătul exterior al graficului.
  • msoElementDataLabelInsideEnd - afișează etichete de date la capătul interior al graficului.

Adăugarea unei axe X și a unui titlu în VBA

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Puteți adăuga un titlu pe axa X și pe axa X utilizând metoda Chart.SetElement. Următorul cod adaugă un grafic un titlu pe axa X și pe axa X:

123456789 Sub AdăugareAnXAxis șiXTitle ()Cu ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalSe termina cuSfârșitul Sub

Rezultatul este:

Adăugarea unei axe Y și a unui titlu în VBA

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Puteți adăuga un titlu pe axa Y și pe axa Y folosind metoda Chart.SetElement. Următorul cod adaugă un grafic un titlu pe axa Y și pe axa Y:

1234567 Sub adăugareAYAxisandYTitle ()Cu ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalSe termina cuSfârșitul Sub

Rezultatul este:

Schimbarea formatului numeric al unei axe

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Puteți modifica formatul numeric al unei axe. Următorul cod modifică formatul numeric al axei y în monedă:

12345 Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$ #, ## 0.00"Sfârșitul Sub

Rezultatul este:

Schimbarea formatării fontului într-o diagramă

Avem următoarea diagramă selectată în foaia de lucru așa cum se arată mai jos:

Puteți modifica formatarea întregului font al graficului, referindu-vă la obiectul fontului și schimbându-i numele, greutatea fontului și dimensiunea. Următorul cod modifică tipul, greutatea și dimensiunea fontului întregului grafic.

12345678910 Sub ChangingTheFontFormatting ()Cu ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Adevărat.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Se termina cu

Rezultatul este:

Ștergerea unui grafic folosind VBA

Avem o diagramă selectată în foaia de lucru, așa cum se arată mai jos:

Putem folosi următorul cod pentru a șterge această diagramă:

12345 Sub DeletingTheChart ()ActiveChart.Parent.DeleteSfârșitul Sub

Referindu-vă la Colecția ChartObjects

Puteți accesa toate diagramele încorporate în foaia de lucru sau în registrul de lucru, consultând colecția ChartObjects. Avem două diagrame pe aceeași foaie prezentate mai jos:

Ne vom referi la colecția ChartObjects pentru a oferi ambelor diagrame de pe foaia de lucru aceeași înălțime, lățime, ștergeți liniile de grilă, faceți culoarea de fundal aceeași, dați diagramelor aceeași culoare a zonei de grafic și faceți aceeași culoare liniei zonei de grafic. culoare:

12345678910111213141516 Sub ReferringToAllTheChartsOnASheet ()Dim cht Ca ChartObjectPentru fiecare cht din ActiveSheet.ChartObjectscht.Hight = 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)Următorul chtSfârșitul Sub

Rezultatul este:

Inserarea unei diagrame pe propria sa foaie de diagrame

Avem gama A1: B6 care conține datele sursă, prezentate mai jos:

Puteți crea un grafic folosind metoda Charts.Add. Următorul cod va crea un grafic pe propria sa foaie de grafic:

123456 Sub InsertingAChartOnItsOwnChartSheet ()Foi ("Sheet1"). Range ("A1: B6"). SelectațiGrafice.AdăugareSfârșitul Sub

Rezultatul este:

Vedeți câteva dintre celelalte tutoriale pentru grafice:

Diagramele în Excel

Creați o diagramă de bare în VBA

wave wave wave wave wave