K vizuálnímu zobrazení dat slouží excelové grafy a grafy. V tomto kurzu se budeme zabývat tím, jak pomocí VBA vytvářet a manipulovat s grafy a prvky grafu.
Můžete vytvářet vložené grafy v listu nebo grafy na jejich vlastních listech grafů.
Vytvoření vloženého grafu pomocí VBA
Máme rozsah A1: B4, který obsahuje zdrojová data, zobrazená níže:
Graf můžete vytvořit pomocí metody ChartObjects.Add. Následující kód vytvoří na listu vložený graf:
12345678 | Sub CreateEmbeddedChartUsingChartObject ()Dim embeddedchart As ChartObjectNastavit vložený graf = Listy ("List1"). ChartObjects.Add (Vlevo: = 180, Šířka: = 300, Nahoře: = 7, Výška: = 200)embeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")End Sub |
Výsledek je:
Můžete také vytvořit graf pomocí metody Shapes.AddChart. Následující kód vytvoří na listu vložený graf:
12345678 | Sub CreateEmbeddedChartUsingShapesAddChart ()Dim embeddedchart As ShapeNastavit embeddedchart = Sheets ("Sheet1"). Shapes.AddChartembeddedchart.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B4")End Sub |
Určení typu grafu pomocí VBA
Máme rozsah A1: B5, který obsahuje níže uvedená zdrojová data:
Typ grafu můžete určit pomocí vlastnosti ChartType. Následující kód vytvoří výsečový graf na listu, protože vlastnost ChartType byla nastavena na xlPie:
123456789 | Sub SpecifyAChartType ()Dim chrt As ChartObjectNastavit chrt = Listy ("List1"). ChartObjects.Add (Vlevo: = 180, Šířka: = 270, Nahoře: = 7, Výška: = 210)chrt.Chart.SetSourceData Zdroj: = Listy ("List1"). Rozsah ("A1: B5")chrt.Chart.ChartType = xlPieEnd Sub |
Výsledek je:
Toto jsou některé z oblíbených typů grafů, které jsou obvykle zadávány, i když existují i jiné:
- xlArea
- xlPie
- xlLine
- xlRadar
- xlXYScatter
- xlPovrch
- xlBubble
- xlBarClustered
- xlColumnClustered
Přidání názvu grafu pomocí VBA
V listu jsme vybrali graf, jak je znázorněno níže:
Nejprve musíte přidat název grafu pomocí metody Chart.SetElement a poté určit text názvu grafu nastavením vlastnosti ChartTitle.Text.
Následující kód ukazuje, jak přidat název grafu a určit text názvu aktivního grafu:
123456 | Sub AddingAndSettingAChartTitle ()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Prodej produktu"End Sub |
Výsledek je:
Poznámka: Nejprve musíte vybrat graf, aby se stal aktivním grafem, abyste mohli ve svém kódu používat objekt ActiveChart.
Změna barvy pozadí grafu pomocí VBA
V listu jsme vybrali graf, jak je znázorněno níže:
Barvu pozadí celého grafu můžete změnit nastavením vlastnosti RGB objektu FillFormat objektu ChartArea. Následující kód dodá grafu světle oranžovou barvu pozadí:
12345 | SubAddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB (253, 242, 227)End Sub |
Výsledek je:
Barvu pozadí celého grafu můžete také změnit nastavením vlastnosti ColorIndex objektu Interiér objektu ChartArea. Následující kód dodá grafu oranžovou barvu pozadí:
12345 | SubAddingABackgroundColorToTheChartArea ()ActiveChart.ChartArea.Interior.ColorIndex = 40End Sub |
Výsledek je:
Poznámka: Vlastnost ColorIndex vám umožňuje určit barvu na základě hodnoty od 1 do 56, nakreslenou z přednastavené palety, abyste zjistili, které hodnoty představují různé barvy, klikněte sem.
Změna barvy oblasti grafu grafu pomocí VBA
V listu jsme vybrali graf, jak je znázorněno níže:
Barvu pozadí pouze oblasti grafu můžete změnit nastavením vlastnosti RGB objektu FillFormat objektu PlotArea. Následující kód dodá oblasti grafu světle zelenou barvu pozadí:
12345 | SubAddingABackgroundColorToThePlotArea ()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)End Sub |
Výsledek je:
Přidání legendy pomocí VBA
V listu jsme vybrali graf, jak je uvedeno níže:
Legendu můžete přidat pomocí metody Chart.SetElement. Následující kód přidá legendu nalevo od grafu:
12345 | SubAddingALegend ()ActiveChart.SetElement (msoElementLegendLeft)End Sub |
Výsledek je:
Pozici legendy můžete určit následujícími způsoby:
- msoElementLegendLeft - zobrazí legendu na levé straně grafu.
- msoElementLegendLeftOverlay - překrývá legendu na levé straně grafu.
- msoElementLegendRight - zobrazí legendu na pravé straně grafu.
- msoElementLegendRightOverlay - překrývá legendu na pravé straně grafu.
- msoElementLegendBottom - zobrazí legendu v dolní části grafu.
- msoElementLegendTop - zobrazí legendu v horní části grafu.
Přidávání datových štítků pomocí VBA
V listu jsme vybrali graf, jak je uvedeno níže:
Datové popisky můžete přidat pomocí metody Chart.SetElement. Následující kód přidá popisky dat na vnitřní konec grafu:
12345 | SubAddingADataLabels ()ActiveChart.SetElement msoElementDataLabelInsideEndEnd Sub |
Výsledek je:
Způsob umístění štítků s údaji můžete určit následujícími způsoby:
- msoElementDataLabelShow - zobrazení popisků dat.
- msoElementDataLabelRight - zobrazuje popisky dat napravo od grafu.
- msoElementDataLabelLeft - zobrazuje popisky dat v levé části grafu.
- msoElementDataLabelTop - zobrazuje popisky dat v horní části grafu.
- msoElementDataLabelBestFit - určuje nejvhodnější.
- msoElementDataLabelBottom - zobrazuje popisky dat v dolní části grafu.
- msoElementDataLabelCallout - zobrazuje popisky dat jako popisek.
- msoElementDataLabelCenter - ve středu zobrazuje popisky dat.
- msoElementDataLabelInsideBase - zobrazuje popisky dat na vnitřní základně.
- msoElementDataLabelOutSideEnd - zobrazí popisky dat na vnějším konci grafu.
- msoElementDataLabelInsideEnd - zobrazí popisky dat na vnitřním konci grafu.
Přidání osy X a názvu ve VBA
V listu jsme vybrali graf, jak je znázorněno níže:
Název osy X a osy X můžete přidat pomocí metody Chart.SetElement. Následující kód přidá do grafu název osy X a osy X:
123456789 | SubAddingAnXAxisandXTitle ()S ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalKonec sEnd Sub |
Výsledek je:
Přidání osy Y a názvu ve VBA
V listu jsme vybrali graf, jak je znázorněno níže:
Název osy Y a osy Y můžete přidat pomocí metody Chart.SetElement. Následující kód přidá do grafu název osy Y a osy Y:
1234567 | Dílčí přidáníAYAxisandYTitle ()S ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalKonec sEnd Sub |
Výsledek je:
Změna formátu čísla osy
V listu jsme vybrali graf, jak je znázorněno níže:
Můžete změnit formát čísel osy. Následující kód mění formát čísla osy y na měnu:
12345 | Dílčí změnaTheNumberFormat ()ActiveChart.Axes (xlValue) .TickLabels.NumberFormat = "$#, ## 0,00"End Sub |
Výsledek je:
Změna formátování písma v grafu
V listu jsme vybrali následující graf, jak je znázorněno níže:
Formátování celého písma grafu můžete změnit odkazem na objekt písma a změnou jeho názvu, hmotnosti a velikosti písma. Následující kód mění typ, váhu a velikost písma celého grafu.
12345678910 | Dílčí změnaTheFontFormatting ()S ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = True.ChartArea.Format.TextFrame2.TextRange.Font.Size = 14Konec s |
Výsledek je:
Odstranění grafu pomocí VBA
V listu jsme vybrali graf, jak je uvedeno níže:
K odstranění tohoto grafu můžeme použít následující kód:
12345 | Dílčí mazáníTheChart ()ActiveChart.Parent.DeleteEnd Sub |
S odkazem na kolekci ChartObjects
Ke všem vloženým grafům v listu nebo sešitu můžete přistupovat podle kolekce ChartObjects. Máme dva grafy na stejném listu zobrazené níže:
Budeme odkazovat na kolekci ChartObjects, abychom dali oběma grafům na listu stejnou výšku, šířku, odstranili mřížky, vytvořili stejnou barvu pozadí, dali grafům stejnou barvu oblasti vykreslení a aby barva čáry oblasti vykreslení byla stejná barva:
12345678910111213141516 | Dílčí doporučeníToAllTheChartsOnASheet ()Dim cht As ChartObjectPro každý cht v ActiveSheet.ChartObjectscht.Height = 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)Další chtEnd Sub |
Výsledek je:
Vložení grafu na vlastní list grafu
Máme rozsah A1: B6, který obsahuje zdrojová data, zobrazená níže:
Graf můžete vytvořit pomocí metody Charts.Add. Následující kód vytvoří graf na vlastním listu grafu:
123456 | Dílčí vkládáníAChartOnItsOwnChartSheet ()Listy („List1“). Rozsah („A1: B6“). VyberteGrafy. PřidatEnd Sub |
Výsledek je:
Podívejte se na některé z našich dalších návodů k vytváření grafů:
Grafy v Excelu
Vytvořte pruhový graf ve VBA