Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-listy-bunky » barvy-color-excel-vba

Barvy - Color - Excel VBA

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Jaké jsou možností při zadávání barev v Excel? RGB, konstanta, barevné schéma, ColorIndex, Color, ...

Úvodem

Barvy - Excel VBA

V článku se dozvíte jak zadávat barvy buněk, pozadí buněk, ohraničení, atd. pomocí VBA v Excelu. Pro přehlednost je rozdělen do jednotlivých kapitol ať se můžete přímo přesunout na problematiku, která vás zajíma:


Teorie

Barvy můžete zadávat:

  • Indexem - ColorIndex
  • Konstantou
  • RGB

Indexem

56 předdefinovaných barev:

Barvy - Excel VBA

Konstantou

K dispozici tyto konstanty:

  • vbBlack - černá
  • vbRed - červená
  • vbGreen
  • vbYellow
  • vbBlue
  • vbMagenta
  • vbCyan
  • vbWhite

RGB

Nastavte si barvu jakou chcete, pomocí RGR.

Syntaxe

RGB(red, green, blue)
  • red - požadováno (Integer) - hodnota 0 - 255, složka červené barvy
  • green - požadováno (Integer) - hodnota 0 - 255, složka zelené barvy
  • blue - požadováno (Integer) - hodnota 0 - 255, složka modré barvy
Barva Red hodnota Green hodnota Blue hodnota
Černá 0 0 0
Modrá 0 0 255
Zelená 0 255 0
Červená 255 0 0
Bíla 255 255 255
Žlutá 255 255 0
Azurovou (Cyan) 0 255 255
Purpurová (Magenta) 255 0 255

Barva pozadí - ColorIndex

Dim MojeRange As Range Set MojeRange = Range("B21") MojeRange.Interior.ColorIndex = 3

nebo:

Range("B21").Interior.ColorIndex = 3

Barva pozadí - konstantou

Range("F30").Interior.Color = vbRed
  • vbBlack - černá
  • vbRed - červená
  • vbGreen
  • vbYellow
  • vbBlue
  • vbMagenta
  • vbCyan
  • vbWhite

Barva pozadí - RGB

Využití hodnot RGB pro vložení požadované barvy pozadí

Range("B21").Interior.Color = RGB(255, 0, 0)

Odstíny šedi

Ne pouhých 52 odstínu šedi ale rovných 255, pro Excel 2007 a vyšší.

Range("L15").Interior.Color = RGB(0, 0, 0) Range("L16").Interior.Color = RGB(50, 50, 50) Range("L17").Interior.Color = RGB(100, 100, 100) Range("L18").Interior.Color = RGB(150, 150, 150) Range("L19").Interior.Color = RGB(200, 200, 200) Range("L20").Interior.Color = RGB(250, 250, 250) Range("L21").Interior.Color = RGB(255, 255, 255)

Barva textu

Podobně jako pozadí můžete měnit i barvu textu, například pomocí ColorIndex.

Dim MojeRange As Range Set MojeRange = Range("B25") MojeRange.Font.ColorIndex = 3

atd. konstatnou, RGB, podobně jako pozadí. Viz předchozí kapitoly.

Jakou barvu má text pozadí

Barva pozadí:

Barva = Range("B40").Interior.Color MsgBox Barva

Barva text:

Barva = Range("B40").Font.Color MsgBox Barva

Barva ohraničení

Barva pozadí:

Range("B1:C5").Select With Selection.Borders .LineStyle = xlContinuous .Weight = xlThin .Color = RGB(150, 150, 150) End With

Více o ohraničení buněk v samostatném článku Ohraničení buněk (Borders) - kódy Excel VBA.

Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor Color - barva - praktické příklady - Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra (pro Excel 2007 a novější).


Další související články:

Pokud už máte buňku (oblast) označenou můžete s ními dále pracovat například

Závěrem

Máte svůj oblíbený kód, které ještě není uveden. Můžete se pochlubit v komentářích.

Článek byl aktualizován: 19.09.2020 11:06

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře


LukasD

Přidáno: 30.10.14 07:43

ColorIndex bych nepoužíval, nefunguje korektně ve verzi 2010. :-)

Pavel Lasák

Přidáno: 30.10.14 17:06

To LukasD: Díky za doplnění. Osobně používám RGB.

Pepan

Přidáno: 19.03.15 10:24

Rád bych se zeptal, zda se dá vypsat RGB vybrané buňky (pozadí).

Jarda

Přidáno: 30.05.15 14:44

To Pepan Barva pozadí vybrané buňky se dá vypsat, vše je zde http://office.lasakovi.com/excel/vba-listy-bunky/barvy-color-excel-vba/

Petr.H.

Přidáno: 07.08.15 13:29

Dobrý den. Dá se nějak pomocí VBA změnit barva záložky listu ? Děkuji.

Jan

Přidáno: 08.04.16 13:49

Zdravím, momentálně pracuji na obrovské tabulce, kde mi člověk vyplňuje buňky různými barvami a já mám makro, které mi rozliší barvu (dle vzoru v jiném listu) a na výstupu vyhodí celkový počet zabarvených buněk v oblasti. VBA vypadá takto: Function CountCcolor(range_data As Range, criteria As Range) As Long Dim datax As Range Dim xcolor As Long xcolor = criteria.Interior.ColorIndex For Each datax In range_data If datax.Interior.ColorIndex = xcolor Then CountCcolor = CountCcolor + 1 End If Next datax End Function Problém je ten, že když buňku odbarvím, VBAčko to nezaregistruje a mě zůstávají buňky připočítané. Dalo by se do kódu nějak přidat, aby když bude buňka bezbarvá/bílá, tak countccolor = + 0? Nebo aby se mi makro automaticky aktualizovalo? Díky za pomoc.






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |