Az Excel grafikonok és grafikonok az adatok vizuális megjelenítésére szolgálnak. Ebben az oktatóanyagban kitérünk arra, hogyan használhatjuk a VBA -t diagramok és diagramelemek létrehozásához és kezeléséhez.
Beágyazott diagramokat hozhat létre munkalapon, vagy diagramokat saját diagramlapjain.
Beágyazott diagram létrehozása a VBA segítségével
Az A1: B4 tartomány tartalmazza az alábbi forrásadatokat:
Diagramot a ChartObjects.Add metódussal hozhat létre. A következő kód beágyazott diagramot hoz létre a munkalapon:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Beágyazott diagram halványítása ChartObject -kéntEmbeddedchart = Sheets ("Sheet1") beállítása. ChartObjects.Add (balra: = 180, szélesség: = 300, felül: = 7, magasság: = 200)embeddedchart.Chart.SetSourceData Forrás: = Táblázatok ("Sheet1"). Tartomány ("A1: B4")End Sub |
Az eredmény:
Diagramot a Shapes.AddChart metódussal is létrehozhat. A következő kód beágyazott diagramot hoz létre a munkalapon:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Beágyazott diagram halványítása alakzatkéntSet embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Forrás: = Táblázatok ("Sheet1"). Tartomány ("A1: B4")End Sub |
Diagramtípus megadása VBA használatával
Az A1: B5 tartomány tartalmazza az alábbi forrásadatokat:
A diagramtípust a ChartType tulajdonság segítségével adhatja meg. A következő kód kördiagramot hoz létre a munkalapon, mivel a ChartType tulajdonság xlPie értékre van állítva:
123456789 | Rész megadásaAChartType ()Dim chrt mint ChartObjectÁllítsa be a chrt = Sheets ("Sheet1"). ChartObjects.Add (Bal: = 180, Szélesség: = 270, Felső: = 7, Magasság: = 210)chrt.Chart.SetSourceData Forrás: = Táblázatok ("Sheet1"). Tartomány ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub |
Az eredmény:
Ezek a népszerű diagramtípusok, amelyeket általában megadnak, bár vannak mások is:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlFelület
- xlBuborék
- xlBarClastered
- xlColumnClastered
Diagramcím hozzáadása a VBA használatával
A munkalapon egy diagramot választottunk ki az alábbiak szerint:
Először hozzá kell adnia egy diagramcímet a Chart.SetElement metódussal, majd a ChartTitle.Text tulajdonság beállításával meg kell adnia a diagram címének szövegét.
A következő kód bemutatja, hogyan adhat hozzá diagramcímet, és hogyan adhatja meg az aktív diagram címének szövegét:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "A termék értékesítése"End Sub |
Az eredmény:
Megjegyzés: Először ki kell választania a diagramot, hogy az aktív diagram legyen, hogy képes legyen használni az ActiveChart objektumot a kódjában.
A diagram háttérszínének megváltoztatása a VBA használatával
A munkalapon egy diagramot választottunk ki az alábbiak szerint:
A ChartArea objektum FillFormat objektumának RGB tulajdonságának beállításával módosíthatja a teljes diagram háttérszínét. A következő kód világos narancssárga háttérszínt ad a diagramnak:
12345 | Al hozzáadásaBackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)End Sub |
Az eredmény:
A ChartArea objektum Belső objektumának ColorIndex tulajdonságának beállításával módosíthatja a teljes diagram háttérszínét is. A következő kód narancssárga háttérszínt ad a diagramnak:
12345 | Al hozzáadásaBackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub |
Az eredmény:
Megjegyzés: A ColorIndex tulajdonság lehetővé teszi, hogy színt adjon meg az előre beállított palettáról rajzolt 1 és 56 közötti értékek alapján, és nézze meg, hogy mely értékek képviselik a különböző színeket, kattintson ide.
A diagram diagramterületének színének megváltoztatása a VBA segítségével
A munkalapon egy diagramot választottunk ki az alábbiak szerint:
A PlotArea objektum FillFormat objektumának RGB tulajdonságának beállításával csak a diagram ábrázolási területének háttérszínét módosíthatja. A következő kód világos diagram háttérszínt ad a diagram ábrázolási területének:
12345 | Al hozzáadásaABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)End Sub |
Az eredmény:
Legenda hozzáadása a VBA használatával
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
Jelmagyarázatot hozzáadhat a Chart.SetElement metódussal. A következő kód egy jelmagyarázatot ad a diagram bal oldalán:
12345 | Sub AddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)End Sub |
Az eredmény:
A jelmagyarázat pozícióját a következő módokon adhatja meg:
- msoElementLegendLeft - a jelmagyarázatot jeleníti meg a diagram bal oldalán.
- msoElementLegendLeftOverlay - átfedi a diagram bal oldalán található jelmagyarázatot.
- msoElementLegendRight - megjeleníti a jelmagyarázatot a diagram jobb oldalán.
- msoElementLegendRightOverlay - átfedi a diagram jobb oldalán található jelmagyarázatot.
- msoElementLegendBottom - a diagram alján lévő jelmagyarázatot jeleníti meg.
- msoElementLegendTop - megjeleníti a jelmagyarázatot a diagram tetején.
Adatcímkék hozzáadása a VBA használatával
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
Adatcímkéket adhat hozzá a Chart.SetElement metódussal. A következő kód adatcímkéket ad hozzá a diagram belső végéhez:
12345 | AdatLabels () hozzáadásaActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub |
Az eredmény:
Az adatcímkék elhelyezését az alábbi módokon adhatja meg:
- msoElementDataLabelShow - adatcímkék megjelenítése.
- msoElementDataLabelRight - az adatcímkéket jeleníti meg a diagram jobb oldalán.
- msoElementDataLabelLeft - az adatcímkéket jeleníti meg a diagram bal oldalán.
- msoElementDataLabelTop - az adatcímkéket jeleníti meg a diagram tetején.
- msoElementDataLabelBestFit - meghatározza a legjobb illeszkedést.
- msoElementDataLabelBottom - az adatcímkéket jeleníti meg a diagram alján.
- msoElementDataLabelCallout - az adatcímkéket kiemelésként jeleníti meg.
- msoElementDataLabelCenter - az adatcímkéket jeleníti meg a központban.
- msoElementDataLabelInsideBase - megjeleníti az adatcímkéket a belső bázison.
- msoElementDataLabelOutSideEnd - megjeleníti az adatcímkéket a diagram külső végén.
- msoElementDataLabelInsideEnd - az adatcímkéket jeleníti meg a diagram belső végén.
X tengely és cím hozzáadása a VBA-ban
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
X-tengely és X-tengely címet adhat hozzá a Chart.SetElement módszerrel. A következő kód hozzáad egy X-tengely és X-tengely címet a diagramhoz:
123456789 | Sub AddingAnXAxisandXTitle ()ActiveChart segítségével.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalVége ezzelEnd Sub |
Az eredmény:
Y tengely és cím hozzáadása a VBA-ban
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
Y-tengely és Y-tengely címet adhat hozzá a Chart.SetElement módszerrel. A következő kód Y-tengely és Y-tengely címet ad hozzá a diagramhoz:
1234567 | Rész hozzáadásaAYAxisandYTitle ()ActiveChart segítségével.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalVége ezzelEnd Sub |
Az eredmény:
Egy tengely számformátumának megváltoztatása
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
Módosíthatja a tengelyek számformátumát. A következő kód megváltoztatja az y tengely számformátumát pénznemre:
12345 | Sub ChangingTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0.00"End Sub |
Az eredmény:
A betűtípus formázásának megváltoztatása a diagramban
A következő táblázatot választottuk ki a munkalapon az alábbiak szerint:
Módosíthatja a teljes diagram betűtípusának formázását a betűtípus objektumra való hivatkozással, valamint annak nevének, betűsúlyának és méretének megváltoztatásával. A következő kód megváltoztatja a teljes diagram betűtípusát, súlyát és méretét.
12345678910 | AlváltozásTheFontFormatting ()ActiveChart segítségével.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Igaz.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Vége ezzel |
Az eredmény:
Diagram törlése VBA használatával
Egy táblázatot választottunk ki a munkalapon, az alábbiak szerint:
A diagram törléséhez a következő kódot használhatjuk:
12345 | TheChart () törléseActiveChart.Parent.DeleteEnd Sub |
A ChartObjects gyűjteményre hivatkozva
A munkalap vagy a munkafüzet összes beágyazott diagramját elérheti a ChartObjects gyűjteményben. Az alábbi táblázaton két diagram található:
A ChartObjects gyűjteményre hivatkozunk annak érdekében, hogy a munkalap mindkét diagramja azonos magasságú, szélességű legyen, törölje a rácsvonalakat, azonos legyen a háttérszín, a diagramok ugyanazt a területterület színét adja, és a diagramterület vonalának színe azonos legyen szín:
12345678910111213141516 | Sub RefereringToAllTheChartsOnASheet ()Dim cht Mint ChartObjectMinden cht -hez az ActiveSheet.ChartObjects -bencht. Magasság = 144,85cht. Szélesség = 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)Következő chtEnd Sub |
Az eredmény:
Diagram beszúrása saját diagramlapjára
Az A1: B6 tartomány tartalmazza az alábbi forrásadatokat:
Diagramot a Charts.Add metódussal hozhat létre. A következő kód létrehoz egy diagramot a saját diagramlapján:
123456 | AlbeillesztésAChartOnItsOwnChartSheet ()Táblázatok ("Sheet1"). Tartomány ("A1: B6"). Válassza kiTáblázatok. HozzáadásEnd Sub |
Az eredmény:
Tekintse meg néhány egyéb grafikon bemutatónkat:
Diagramok Excelben
Hozzon létre egy oszlopdiagramot a VBA -ban