Poslední aktualizace: srpen 2021; Microsoft Excel 365, 2019, 2016.
V dnešním tutoriálu VBA pro Excel Automation se seznámíme s tím, jak můžeme programově změnit barvu buňky na základě hodnoty buňky.
Tuto techniku můžeme použít například při vývoji jednoduchého stavového panelu.
Založit
Pokud ještě nevyvíjíte v Excelu, doporučujeme nahlédnout do našeho úvodního průvodce Excelovými makry . Konkrétně se musíte ujistit, že karta Vývojář je k dispozici na pásu karet aplikace Microsoft Excel, protože ji budete používat k psaní jednoduchého kódu.
- Otevřete aplikaci Microsoft Excel. Očekává se, že kód uvedený v tomto kurzu bude fungovat v aplikaci Excel 2007 a novější.
- Do prázdného listu přidejte následující tabulku:

- Nyní pokračujte a definujte pojmenovaný rozsah stisknutím: Vzorce>>Definovat název

Změna vnitřní barvy buňky na základě hodnoty pomocí Cell.Interior.Color
- Klepněte na položku Vývojář na pásu karet.
- Stisknutím Visual Basic nebo Alt+F11 otevřete vývojářský editor VBA.
- Dále zvýrazněte list, ve kterém byste chtěli spustit svůj kód. Případně vyberte modul, který má váš kód VBA.
- Pokračujte a vložte tento kód. V našem příkladu upravíme vnitřní barvu řady buněk na konkrétní hodnoty RGB buňky odpovídající červené, žluté a zelené barvě.
- Konkrétně používáme Excel VBA metodu Cell.Interior.Color a předáváme odpovídající RGB hodnotu nebo barevný index.
Sub Color_Cell_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Status")
For Each MyCell In StatusRange
StatValue = MyCell.Value
Select Case StatValue
Case "Progressing"
MyCell.Interior.Color = RGB(0, 255, 0)
Case "Pending Feedback"
MyCell.Interior.Color = RGB(255, 255, 0)
Case "Stuck"
MyCell.Interior.Color = RGB(255, 0, 0)
End Select
Next MyCell
End Sub
- Spusťte svůj kód – buď stisknutím klávesy F5 nebo Run>> Run Sub / UserForm.
- Všimněte si, že stavový panel byl vyplněn, jak je znázorněno níže:

- Uložte kód a zavřete editor VBA.