zpět na výpis    domů » excel » Barvy a nastavení barev ve VBA

Barvy a nastavení barev ve VBA

Publikováno: 24.11.2019

Barvy a nastavení barev ve VBA

Nastavení barvy písma, ohraničení buňky a pozadí buňky patří k základním znalostem Excelu. V příspěvku půjdu o kousek dál a ukážu vám, jak tyto jednoduché úkony naprogramovat v jazyce Visual Basic for Applications (VBA) a povýšit tím vaše projekty.

Nastavení barvy ve VBA

V zásadě existují 3 možnosti, jak nastavit barvu písma, ohraničení a pozadí buňky. Přičemž k barvám se přistupuje pomocí vlastností ColorIndex a Color.

První možností jsou číselné konstanty, které se přiřazují vlastnosti ColorIndex. Na konci příspěvku je procedura, která vypíše celou paletu barev vlastnosti.

Druhou možností je funkce RGB(), která se používá s vlastností Color. Funkce RGB() kombinuje základní barvy k namíchání všech ostatních barev. Název funkce RGB vychází z anglických názvů barev - červená (red), zelená (green) a modrá (blue). Přičemž rozsah hodnot RGB barev se pohybuje na intervalu od 0 do 255.

Třetí a poslední možností je nastavení barvy pomocí vestavěných VBA konstant. Konstanty se používají s vlastností Color.

Přehled základních barev
BarvaColorIndexRGBKonstantaHTMLVýsledek
Černá1(0, 0, 0)vbBlack#000000
Bílá2(255, 255, 255)vbWhite#ffffff
Červená3(255, 0, 0)vbRed#ff0000
Zelená4(0, 255, 255)vbGreen#00ff00
Modrá5(0, 0, 255)vbBlue#0000ff
Žlutá6(255, 255, 0)vbYellow#ffff00
Fialová7(255, 0, 255)vbMagenta#ff00ff
Azurová8(0, 255, 255)vbCyan#00ffff

Pro zajímavost jsem doplnil sloupec s hexadecimálním zápisem barev, který se používá v HTML jazyce pro tvorbu webových stránek. Tyto barvy včetně RGB barev běžně najdete v grafickém editoru.

Barva písma

K nastavení barvy písma se přistupuje pomocí vlastnosti Font, ke které se připojují vlastnosti ColorIndex a Color.

Příklad #1

Následující procedura obarví obsah buňky C2 červenou barvou (3).

Sub barva_písma()
  Range("C2").Select
  Selection.Font.ColorIndex = 3
End Sub

Příklad #2

Další procedura vypíše do sloupce A osm čísel, přičemž první čtyři čísla budou mít modrou barvu (5) a zbývající čtyři červenou (3).

Sub barva_písma_2()

deklarace proměnné
Dim i As Byte

posun do bunky C1
Range("C1").Select

For i = 1 To 8
   Cells(i, 1).Value = i

   podmíněné větvení kódu
   if i < 5 Then
      modrá barva fontu
      Cells(i, 1).Font.ColorIndex = 5
   Else
      červená barva fontu
      Cells(i, 1).Font.ColorIndex = 3
   End If
Next i

End Sub

Vlastnost Font.ColorIndex ve VBA

Dalším a velmi podobným příkladem by mohla být procedura, která zabarví záporná čísla červenou barvou.

Barva ohraničení buňky

K ohraničení buňky se přistupuje pomocí vlastnosti Borders. Princip je naprosto stejný jako v předchozím případě.

Příklad #1

Procedura vybere buňku C8 a nastaví jí červené ohraničení (3).

Sub Ohraničení_buňky()
  Range("C8").Select
  Selection.Borders.ColorIndex = 3
End Sub

Příklad #2

Napište proceduru, která vypíše do sloupce A čísla od 1 do 8 a každá druhá buňka bude mít červené ohraničení.

Sub Ohraničení_bunky_2()

deklarace proměnných
Dim i, j As Byte

první cyklus
For i = 1 To 8
  výpis čísel
  Cells(i, 1).Value = i

  druhý cyklus
  For j = 2 To 8 Step 2
    zabarvení ohraničení buňky
    Cells(j, 1).Borders.Color = RGB(255, 0, 0)
  Next j

Next i

End Sub

Vlastnost Interior ve VBA

Barva pozadí buňky

K nastavení pozadí buňky se používá vlastnost Interior. Nastavení barvy je opět identické jako v předchozích dvou případech. Barvu můžete nastavit pomocí vlastnosti ColorIndex nebo Color.

Příklad #1

Následující procedura vloží do buňky A3 libovolný textový řetězec, přičemž bude vypsán modrou barvou se žlutým pozadím buňky pomocí funkce RGB().

Sub Barva_pozadi()

posun kurzoru do buňky A3
Range("A3").Select

formátování vybrané buňky
With Selection
  .Value = "Modrý font se žlutým pozadím buňky"
  .Interior.Color = RGB(255, 255, 0)
  .Font.Color = RGB(0, 255, 0)
End With

přizpůsobení šířky 3. sloupce obsahu
Range("A3").EntireColumn.Autofit

End Sub

Příklad #2

Další procedura načte barvu pozadí buňky B3 do proměnné a vypíše kód barvy bílou barvou do stejné buňky. Poté vloží do buňky C3 libovolný textový řetězec obarvený barvou pozadí buňky B3. Barvu pozadí načte pomocí vlastností Interior.Color.

Sub barvy()

deklarace proměnné
Dim barva_pozadi As Long

výběr buňky B3, načtení barvy do proměnné a výpis barvy bílým fontem
Range("B3").Select
barva_pozadi = Selection.Interior.Color
With Selection
  .Value = barva_pozadi
  .Font.Color = RGB(255, 255, 255)
End With

výběr buňky C3, do které se vloží textový řetězec obarvený barvou buňky B3 a přizpůsobení sloupce obsahu
Range("C3").Select
With Selection
  .Value = "Visual Basic for Applications je super"
  .Font.Color = barva_pozadi
  .EntireColumn.AutoFit
End With

End Sub

Vlastnost Interior ve VBA

Příklad #3

Poslední procedura vypíše číselné označení barev vlastnosti ColorIndex včetně zabarvení pozadí buněk ve vedlejším sloupci. Paleta barev ColorIndex obsahuje 56 barev. V polovině procedury se kurzor přesune do prvního řádku a bude pokračovat výpis barev. Posun kurzoru do třetího sloupce zajistí funkce Offset().

Zdrojový kód procedury ve VBA

Výsledek v sešitu Excel

Vlastnost Interior ve VBA

Líbil se vám článek? A chcete se vědět o každém dalším?

Sledujte:

Nahoru