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, ...
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:
Barvy můžete zadávat:
56 předdefinovaných barev:
K dispozici tyto konstanty:
Nastavte si barvu jakou chcete, pomocí RGR.
Syntaxe
RGB(red, green, blue)
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 |
Dim MojeRange As Range
Set MojeRange = Range("B21")
MojeRange.Interior.ColorIndex = 3
nebo:
Range("B21").Interior.ColorIndex = 3
Range("F30").Interior.Color = vbRed
Využití hodnot RGB pro vložení požadované barvy pozadí
Range("B21").Interior.Color = RGB(255, 0, 0)
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)
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.
Barva pozadí:
Barva = Range("B40").Interior.Color
MsgBox Barva
Barva text:
Barva = Range("B40").Font.Color
MsgBox Barva
Barva pozadí:
Range("B1:C5").Select With Selection.Borders .LineStyle = xlContinuous .Weight = xlThin .Color = RGB(150, 150, 150) End WithVíce o ohraničení buněk v samostatném článku Ohraničení buněk (Borders) - kódy Excel VBA.
Soubor Color - barva - praktické příklady - Excel VBA ke stažení zdarma. Soubor využívá makra (pro Excel 2007 a novější).
Pokud už máte buňku (oblast) označenou můžete s ními dále pracovat například
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
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.
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ů.
Přidáno: 30.10.14 07:43
ColorIndex bych nepoužíval, nefunguje korektně ve verzi 2010. :-)
Přidáno: 30.10.14 17:06
To LukasD: Díky za doplnění. Osobně používám RGB.
Přidáno: 19.03.15 10:24
Rád bych se zeptal, zda se dá vypsat RGB vybrané buňky (pozadí).
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/
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.
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.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
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 |