Kolor wykresu z komórek z jego danymi

Sformułowanie problemu

Chciałbym, aby kolumny na histogramie (lub plasterki na wykresie kołowym itp.) automatycznie miały kolor, który został użyty do wypełnienia odpowiednich komórek danymi źródłowymi:

Przewidując zdziwione i oburzone okrzyki poszczególnych towarzyszy, należy zauważyć, że oczywiście kolor wypełnienia diagramu można również zmienić ręcznie (kliknij prawym przyciskiem myszy na kolumnie – Format punktowy/szeregowy (Sformatuj punkt/serię danych) itd. – nikt się nie kłóci. Ale w praktyce jest wiele sytuacji, kiedy łatwiej i wygodniej zrobić to bezpośrednio w komórkach z danymi, a wtedy wykres powinien zostać automatycznie przemalowany. Spróbuj na przykład ustawić wypełnienie według regionu dla kolumn na tym wykresie:

Myślę, że masz pomysł, prawda?

Rozwiązanie

Może to zrobić tylko makro. Dlatego otwieramy Edytor Visual Basic z zakładki wywoływacz (Deweloper — Edytor Visual Basic) lub naciśnij skrót klawiaturowy Alt + F11, wstaw nowy pusty moduł przez menu Wstaw – moduł i skopiuj tam tekst takiego makra, które wykona całą pracę:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Wyjdź z końca podrzędnego, jeśli ustawiono c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Następny i Następny j Koniec Sub  

Możesz teraz zamknąć Visual Basic i wrócić do programu Excel. Korzystanie z utworzonego makra jest bardzo proste. Wybierz wykres (obszar wykresu, a nie obszar kreślenia, siatkę lub kolumny!):

i uruchamiamy nasze makro przyciskiem Makra Zakładka wywoływacz (Deweloper — Makra) lub za pomocą skrótu klawiaturowego Alt + F8. W tym samym oknie, w przypadku częstego używania, możesz przypisać skrót klawiaturowy do makra za pomocą przycisku parametry (Opcje).

PS

Jedyną muchą w maści jest niemożność użycia podobnej funkcji w przypadkach, gdy kolor jest przypisany do komórek danych źródłowych za pomocą reguł formatowania warunkowego. Niestety Visual Basic nie ma wbudowanego narzędzia do odczytywania tych kolorów. Są oczywiście pewne „kule”, ale nie działają one we wszystkich przypadkach i nie we wszystkich wersjach.

  • Czym są makra, jak ich używać, gdzie wstawić kod makr w Visual Basic
  • Formatowanie warunkowe w Excelu 2007-2013
  • Co nowego w wykresach w programie Excel 2013

Dodaj komentarz