Przewodnik VBA dla wykresów i wykresów

Spisie treści

Wykresy i wykresy Excel służą do wizualnego wyświetlania danych. W tym samouczku omówimy, jak używać VBA do tworzenia i manipulowania wykresami i elementami wykresów.

Możesz tworzyć osadzone wykresy w arkuszu lub wykresy na ich własnych arkuszach wykresów.

Tworzenie osadzonego wykresu za pomocą VBA

Mamy zakres A1:B4, który zawiera dane źródłowe, pokazane poniżej:

Wykres można utworzyć za pomocą metody ChartObjects.Add. Poniższy kod utworzy osadzony wykres w arkuszu:

12345678 Sub UtwórzEmbeddedChartUsingChartObject()Przyciemnij osadzony wykres jako ChartObjectUstaw embeddedchart = Sheets("Arkusz1").ChartObjects.Add(Lewo:=180, Szerokość:=300, Góra:=7, Wysokość:=200)embeddedchart.Chart.SetSourceData Source:=Sheets("Arkusz1").Range("A1:B4")Napis końcowy

Wynik to:

Wykres można również utworzyć za pomocą metody Shapes.AddChart. Poniższy kod utworzy osadzony wykres w arkuszu:

12345678 Sub UtwórzEmbeddedChartUsingShapesAddChart()Przyciemnij osadzony wykres jako kształtUstaw embeddedchart = Sheets("Arkusz1").Shapes.AddChartembeddedchart.Chart.SetSourceData Source:=Sheets("Arkusz1").Range("A1:B4")Napis końcowy

Określanie typu wykresu za pomocą VBA

Mamy zakres A1:B5, który zawiera dane źródłowe, pokazane poniżej:

Typ wykresu można określić za pomocą właściwości ChartType. Poniższy kod utworzy wykres kołowy w arkuszu, ponieważ właściwość ChartType została ustawiona na xlPie:

123456789 Sub OkreślAChartType()Dim chrt As ChartObjectUstaw wykres = Arkusze("Arkusz1").ChartObjects.Add(Lewo:=180, Szerokość:=270, Góra:=7, Wysokość:=210)chrt.Chart.SetSourceData Źródło:=Sheets("Arkusz1").Range("A1:B5")wykres.Chart.ChartType = xlPieNapis końcowy

Wynik to:

Oto niektóre z popularnych typów wykresów, które są zwykle określane, chociaż są też inne:

  • xlObszar
  • xlPie
  • xlLinia
  • xlRadar
  • xlXYSrozproszenie
  • xlPowierzchnia
  • xlBubble
  • xlBarClustered
  • xlColumnClustered

Dodawanie tytułu wykresu za pomocą VBA

Mamy wykres wybrany w arkuszu, jak pokazano poniżej:

Musisz najpierw dodać tytuł wykresu za pomocą metody Chart.SetElement, a następnie określić tekst tytułu wykresu, ustawiając właściwość ChartTitle.Text.

Poniższy kod pokazuje, jak dodać tytuł wykresu i określić tekst tytułu aktywnego wykresu:

123456 Sub AddingAndSettingAChartTitle()ActiveChart.SetElement (msoElementChartTitleAboveChart)ActiveChart.ChartTitle.Text = "Sprzedaż produktu"Napis końcowy

Wynik to:

Uwaga: Musisz najpierw wybrać wykres, aby stał się wykresem aktywnym, aby móc używać obiektu ActiveChart w swoim kodzie.

Zmiana koloru tła wykresu za pomocą VBA

Mamy wykres wybrany w arkuszu, jak pokazano poniżej:

Kolor tła całego wykresu można zmienić, ustawiając właściwość RGB obiektu FillFormat obiektu ChartArea. Poniższy kod nada wykresowi jasnopomarańczowy kolor tła:

12345 Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.ChartArea.Format.Fill.ForeColor.RGB = RGB(253, 242, 227)Napis końcowy

Wynik to:

Możesz również zmienić kolor tła całego wykresu, ustawiając właściwość ColorIndex obiektu Interior obiektu ChartArea. Poniższy kod nada wykresowi pomarańczowy kolor tła:

12345 Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.ChartArea.Interior.ColorIndex = 40Napis końcowy

Wynik to:

Uwaga: Właściwość ColorIndex umożliwia określenie koloru na podstawie wartości od 1 do 56, narysowanej z palety ustawień wstępnych, aby zobaczyć, które wartości reprezentują różne kolory, kliknij tutaj.

Zmiana koloru obszaru wykresu wykresu za pomocą VBA

Mamy wykres wybrany w arkuszu, jak pokazano poniżej:

Możesz zmienić kolor tła tylko obszaru kreślenia wykresu, ustawiając właściwość RGB obiektu FillFormat obiektu PlotArea. Poniższy kod nada obszarowi wykresu jasnozielony kolor tła:

12345 Sub DodawanieKoloruTłaDoObszaruWykresu()ActiveChart.PlotArea.Format.Fill.ForeColor.RGB = RGB (208, 254, 202)Napis końcowy

Wynik to:

Dodawanie legendy za pomocą VBA

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Legendę można dodać za pomocą metody Chart.SetElement. Poniższy kod dodaje legendę po lewej stronie wykresu:

12345 Sub Dodawanie ALegend()ActiveChart.SetElement (msoElementLegendLeft)Napis końcowy

Wynik to:

Położenie legendy można określić w następujący sposób:

  • msoElementLegendLeft - wyświetla legendę po lewej stronie wykresu.
  • msoElementLegendLeftOverlay - nakłada legendę po lewej stronie wykresu.
  • msoElementLegendRight - wyświetla legendę po prawej stronie wykresu.
  • msoElementLegendRightOverlay - nakłada legendę po prawej stronie wykresu.
  • msoElementLegendBottom - wyświetla legendę na dole wykresu.
  • msoElementLegendTop - wyświetla legendę na górze wykresu.

Dodawanie etykiet danych za pomocą VBA

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Etykiety danych można dodawać przy użyciu metody Chart.SetElement. Poniższy kod dodaje etykiety danych na wewnętrznej stronie wykresu:

12345 Sub Dodawanie Etykiet Danych()ActiveChart.SetElement msoElementDataLabelInsideEndNapis końcowy

Wynik to:

Sposób rozmieszczenia etykiet danych można określić w następujący sposób:

  • msoElementDataLabelShow - wyświetla etykiety danych.
  • msoElementDataLabelRight - wyświetla etykiety danych po prawej stronie wykresu.
  • msoElementDataLabelLeft - wyświetla etykiety danych po lewej stronie wykresu.
  • msoElementDataLabelTop - wyświetla etykiety danych na górze wykresu.
  • msoElementDataLabelBestFit - określa najlepsze dopasowanie.
  • msoElementDataLabelBottom - wyświetla etykiety danych na dole wykresu.
  • msoElementDataLabelCallout - wyświetla etykiety danych jako objaśnienie.
  • msoElementDataLabelCenter - wyświetla etykiety danych na środku.
  • msoElementDataLabelInsideBase - wyświetla etykiety danych na wewnętrznej bazie.
  • msoElementDataLabelOutSideEnd - wyświetla etykiety danych na zewnętrznym końcu wykresu.
  • msoElementDataLabelInsideEnd - wyświetla etykiety danych na wewnętrznym końcu wykresu.

Dodawanie osi X i tytułu w VBA

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Możesz dodać oś X i tytuł osi X przy użyciu metody Chart.SetElement. Poniższy kod dodaje tytuł osi X i osi X do wykresu:

123456789 Sub DodawanieXAxisandXTitle()Z ActiveChart.SetElement msoElementPrimaryCategoryAxisShow.SetElement msoElementPrimaryCategoryAxisTitleHorizontalKończyć zNapis końcowy

Wynik to:

Dodawanie osi Y i tytułu w VBA

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Możesz dodać oś Y i tytuł osi Y za pomocą metody Chart.SetElement. Poniższy kod dodaje do wykresu tytuł osi Y i osi Y:

1234567 Sub Dodawanie AYAxisandYTitle()Z ActiveChart.SetElement msoElementPrimaryValueAxisShow.SetElement msoElementPrimaryValueAxisTitleHorizontalKończyć zNapis końcowy

Wynik to:

Zmiana formatu liczbowego osi

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Możesz zmienić format liczbowy osi. Poniższy kod zmienia format liczbowy osi y na walutę:

12345 Sub ZmianaFormatuLiczby()ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "$#,##0.00"Napis końcowy

Wynik to:

Zmiana formatowania czcionki na wykresie

W arkuszu mamy wybrany następujący wykres, jak pokazano poniżej:

Możesz zmienić formatowanie całej czcionki wykresu, odwołując się do obiektu czcionki i zmieniając jego nazwę, grubość i rozmiar czcionki. Poniższy kod zmienia typ, wagę i rozmiar czcionki całego wykresu.

12345678910 Sub ZmianaFormatowania Czcionki()Z ActiveChart.ChartArea.Format.TextFrame2.TextRange.Font.Name = "Times New Roman".ChartArea.Format.TextFrame2.TextRange.Font.Bold = Prawda.ChartArea.Format.TextFrame2.TextRange.Czcionka.Rozmiar = 14Kończyć z

Wynik to:

Usuwanie wykresu za pomocą VBA

W arkuszu mamy wybrany wykres, jak pokazano poniżej:

Aby usunąć ten wykres, możemy użyć następującego kodu:

12345 Sub UsuwanieWykresu()ActiveChart.Parent.DeleteNapis końcowy

Odnosząc się do kolekcji ChartObjects

Możesz uzyskać dostęp do wszystkich osadzonych wykresów w arkuszu lub skoroszycie, odwołując się do kolekcji ChartObjects. Mamy dwa wykresy na tym samym arkuszu pokazanym poniżej:

Odniesiemy się do kolekcji ChartObjects, aby nadać obu wykresom w arkuszu tę samą wysokość, szerokość, usunąć linie siatki, ustawić taki sam kolor tła, nadać wykresom ten sam kolor obszaru kreślenia i taki sam kolor linii obszaru kreślenia kolor:

12345678910111213141516 Sub odwołujące się do wszystkich wykresów na arkuszu()Dim cht As ChartObjectDla każdego cht w ActiveSheet.ChartObjectswys.cht = 144,85cht.Szerokość = 246.61cht.Chart.Axes(xlValue).MajorGridlines.Deletecht.Chart.Obszar wykresu.Format.Wypełnienie.Kolor.fore.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)Następny czatNapis końcowy

Wynik to:

Wstawianie wykresu na osobnym arkuszu wykresów

Mamy zakres A1:B6, który zawiera dane źródłowe, pokazane poniżej:

Wykres można utworzyć za pomocą metody Charts.Add. Poniższy kod utworzy wykres na własnym arkuszu wykresu:

123456 Sub WstawianieAChartOnItsOwnChartSheet()Arkusze("Arkusz1").Zakres("A1:B6").WybierzWykresy.DodajNapis końcowy

Wynik to:

Zobacz niektóre z naszych innych samouczków dotyczących wykresów:

Wykresy w Excelu

Utwórz wykres słupkowy w VBA

wave wave wave wave wave