Kaavion väri soluista ja sen tiedoista

Ongelman muotoilu

Haluaisin, että histogrammin sarakkeilla (tai ympyräkaavion osilla) on automaattisesti väri, jota käytettiin vastaavien solujen täyttämiseen lähdetiedoilla:

Ennakoimalla yksittäisten tovereiden yllättyneitä ja närkästyneitä huutoja, on huomioitava, että kaavion täytön väriä voidaan tietysti muuttaa myös manuaalisesti (klikkaa hiiren oikealla painikkeella saraketta - Piste/sarja muoto (Muotoile tietopiste/sarja) jne. – kukaan ei kiistä. Mutta käytännössä on paljon tilanteita, joissa tämä on helpompaa ja kätevämpää tehdä suoraan soluissa datan kanssa, ja sitten kaavio pitäisi maalata automaattisesti uudelleen. Kokeile esimerkiksi määrittää tämän kaavion sarakkeiden täyttö alueen mukaan:

Luulen, että ymmärrät idean, eikö?

Ratkaisu

Mikään muu kuin makro voi tehdä tämän. Siksi avaamme Visual Basic -editori välilehdeltä kehittäjä (Kehittäjä – Visual Basic Editor) tai paina pikanäppäintä Alt + F11, lisää uusi tyhjä moduuli valikon kautta Insert – moduuli ja kopioi tällaisen makron teksti sinne, joka tekee kaiken työn:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Poistu alapäästä, jos Aseta c = ActiveChart Kohta j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j). Kaava m = Split(f, ",") Aseta r = Alue(m(2)) i:lle = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Voit nyt sulkea Visual Basicin ja palata Exceliin. Luodun makron käyttäminen on hyvin yksinkertaista. Valitse kaavio (kaavion alue, ei kaavioaluetta, ruudukkoa tai sarakkeita!):

ja suorita makromme -painikkeella Makrot kieleke kehittäjä (Kehittäjä – makrot) tai pikanäppäimellä Alt + F8. Samassa ikkunassa, jos sitä käytetään usein, voit määrittää makrolle pikanäppäimen painikkeella parametrit (Vaihtoehdot).

PS

Ainoa järkeenkäypä on se, että samanlaista toimintoa ei voida käyttää tapauksissa, joissa väri on määritetty lähdetietojen soluille ehdollisten muotoilusääntöjen avulla. Valitettavasti Visual Basicissa ei ole sisäänrakennettua työkalua näiden värien lukemiseen. Tiettyjä "sauvoja" on tietysti olemassa, mutta ne eivät toimi kaikissa tapauksissa eivätkä kaikissa versioissa.

  • Mitä makrot ovat, miten niitä käytetään, mihin makrokoodi lisätään Visual Basicissa
  • Ehdollinen muotoilu Excelissä 2007-2013
  • Mitä uutta kaavioissa Excel 2013:ssa

Jätä vastaus