A probléma megfogalmazása
Szeretném, ha a hisztogram oszlopai (vagy a kördiagram szeletei stb.) automatikusan olyan színt kapnának, mint amivel a megfelelő cellákat a forrásadatokkal kitöltötték:
Előrevetve az egyes elvtársak meglepett és felháborodott kiáltásait, meg kell jegyezni, hogy természetesen a diagram kitöltésének színe manuálisan is módosítható (jobb gombbal kattintson az oszlopra – Pont/sorozat formátum (Adatpont/sorozat formázása) stb. – senki sem vitatkozik. De a gyakorlatban nagyon sok olyan helyzet van, amikor egyszerűbb és kényelmesebb ezt közvetlenül az adatokkal rendelkező cellákban megtenni, majd a diagramot automatikusan újra kell festeni. Próbálja meg például beállítani a régió szerinti kitöltést a diagram oszlopaihoz:
Szerintem érted az ötletet, igaz?
Megoldás
Erre csak egy makró képes. Ezért nyitunk Visual Basic szerkesztő a lapról fejlesztő (Fejlesztő – Visual Basic szerkesztő) vagy nyomja meg a billentyűparancsot Alt + F11, helyezzen be egy új üres modult a menün keresztül Beszúrás – Modul és másolja oda egy ilyen makró szövegét, amely elvégzi az összes munkát:
Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" then MsgBox "Сначала выделите диаграмму!" Kilépés az alvégből, ha beállítva c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j). Formula m = Split(f, ",") Állítsa be r = Tartomány(m(2)) i-hez = 1 - r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub
Most bezárhatja a Visual Basic programot, és visszatérhet az Excelhez. A létrehozott makró használata nagyon egyszerű. Válassza ki a diagramot (diagram területét, ne a diagram területét, rácsát vagy oszlopait!):
és futtassa a makrónkat a gombbal makrók lap fejlesztő (Fejlesztő – Makrók) vagy billentyűkóddal Alt + F8. Ugyanebben az ablakban gyakori használat esetén a gomb segítségével billentyűparancsot rendelhet a makróhoz paraméterek (Lehetőségek).
PS
Az egyetlen hiba az, hogy nem lehet hasonló funkciót használni olyan esetekben, amikor a színt a forrásadatok celláihoz feltételes formázási szabályokkal rendelik hozzá. Sajnos a Visual Basic nem rendelkezik beépített eszközzel ezeknek a színeknek a leolvasására. Természetesen vannak bizonyos „mankók”, de nem minden esetben és nem minden változatban működnek.
- Mik azok a makrók, hogyan kell használni őket, hova kell beszúrni a makrókódot a Visual Basicben
- Feltételes formázás az Excelben 2007-2013
- Az Excel 2013 diagramjainak újdonságai