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