Vba excel bunka farba. VBA Excel. farba bunky

  • 22.05.2019

Textový podProcedúra_1() "Vytvoriť v Náhodný vstup do pamäťe počítač "pomenovaný región - pole "myColor". "Pole pozostáva z tri riadky a dva stĺpce. "Ak potrebujete hľadať viac ako tri slová, potom musíte zmeniť "počet riadkov tu: nie 1 až 3, ale napríklad 1 až 4." Počet stĺpcov nie je potrebné meniť. Dim myColor(1 to 3, 1 to 2) As String Dim rngSearch As Excel.Range Dim rngFind As Excel.Range, myAddress As String Dim i As Long "1. Do prvého vložíme pole "myColor". text stĺpca, "ktorá sa bude hľadať v bunkách Excelu. "Do druhého stĺpca uvedieme číslo farby, ktorú chcete"použiť." "Číslo farby zistíte takto:" 1) prejdite do Excelu; "2) aktivujte bunku, v ktorej chcete poznať farbu; "3) prejdite do VBA; "4) Zobraziť - okamžité okno. Otvorí sa okno. Do tohto okna vložte „tento kód a stlačte kláves „Enter“. Získa sa číslo farby. „print activecell.Interior.Color“5) Je tam aj „ColorIndex“. určité farby sú dané " určité čísla. V pomocníkovi vo VBA (Excel 2010) ak „v pravom hornom rohu vložíte text „ColorIndex“ a stlačíte kláves „Enter“, zobrazí sa zoznam článkov. "Vyberte článok "Vlastnosť ColorIndex". V ňom je uvedené, "aká farba, ktoré číslo je priradené." "Čísla uzatváram do úvodzoviek, pretože som dal poliu dátový typ "Text". myColor(1, 1) = "GR": myColor(1, 2) = "5287936" myColor(2, 1) = "RD" : myColor(2, 2) = "255" myColor(3, 1) = "Y" : myColor(3, 2) = "65535" "2. Pre uľahčenie písania kódu dávame rozsahu buniek názov „rngSearch“, kde „bunky je potrebné premaľovať. Prostredníctvom tohto názvu budeme odkazovať“ na požadovaný rozsah buniek. Nastaviť rngSearch = ActiveSheet.Range("A1:D25") "Prechádzať cez "i" cez všetky riadky v poli "myColor". "UBound(myColor, 1) je sériové číslo posledný riadok v poli "myColor". Pre i = 1 To UBound(myColor, 1) Krok 1 "3. Je rýchlejšie nepozerať sa na každú bunku, ale hľadať rýchlejšie. "LookAt:=xlWhole - hľadá sa úplná zhoda. Nastaviť rngFind = rngSearch.Find(What:=myColor(i, 1), LookIn:=xlValues, _ LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) Ak sa nájde, bunka obsahujúca nájdený text bude mať názov "rngFind". A prostredníctvom tohto názvu môžete odkazovať na bunku. "Ak sa nenájde, potom premenná 'rngFind' bude obsahovať text 'Nič'. Ak rngFind nie je nič, potom "4. Ak sa nenájde, pokračujte v hľadaní ďalšieho textu. GoTo label End If "If found."5. Pamätáme si adresu bunky, kde bola prvýkrát nájdená, "aby sme vyhľadávanie neskôr zastavili. mojaAddress = rngFind.Address "Pokračujeme v hľadaní pomocou slučky "Do ... Loop". Urobte "6. Vyfarbite bunku požadovanou farbou." Máme číslo ako text. Pomocou "CLng" "urobte z čísla číslo. rngFind.Interior.Color = CLng(myColor(i, 2)) "7. Pokračujeme v pátraní. Nastaviť rngFind = rngSearch.FindNext(rngFind) Slučka pri rngFind.Address<>myAddress metka: Ďalej i "8. Správa, že kód sa skončil. MsgBox "Kód sa skončil!", vbInformation End Sub

Vyplňte bunku farbou VBA Excel. Pozadie bunky. Vlastnosti.Interior.Color a.Interior.ColorIndex. farba RGB model. Štandardná paleta 56 farieb. preddefinované konštanty.

Vlastnosť.Interior.Color objektu Range

Počnúc Excelom 2007 je primárnym spôsobom, ako vyplniť rozsah alebo samostatnú bunku farbou (vykreslenie, pridanie, zmena pozadia), použiť vlastnosť .Interior.Color objektu Range priradením hodnoty farby vo forme desatinné číslo od 0 do 16777215 (celkovo 16777216 farieb).

Vyplňte bunku farbou vo VBA Excel

Príklad kódu 1:

Sub ColorTest1() Range("A1").Interior.Color = 31569 Range("A4:D8").Interior.Color = 4569325 Range("C12:D17").Cells(4).Interior.Color = 568569 buniek (3, 6). Farba interiéru = 12659 End Sub

Vložte vzorový kód do svojho softvérový modul a stlačte tlačidlo na paneli nástrojov "Run Sub" alebo na klávesnici "F5", kurzor by mal byť vo vnútri práve vykonávaného programu. Na aktívnom hárku Excel bunky a rozsah vybraný v kóde bude zafarbený zodpovedajúcimi farbami.

Je tam jedna zaujímavá nuansa: ak priradíte vlastnosť .Interiér.Farba záporná hodnota od -16777215 do -1, potom bude farba zodpovedať hodnote rovnajúcej sa súčtu maximálna hodnota paleta (16777215) a priradená záporná hodnota. Napríklad vyplnenie všetkých troch buniek po vykonaní nasledujúci kód bude to isté:

Sub ColorTest11() Cells(1, 1).Interior.Color = -12207890 Cells(2, 1).Interior.Color = 16777215 + (-12207890) Cells(3, 1).Interior.Color = 4569325 End Sub

Overené v Exceli 2016.

Zobrazovanie správ o číselných hodnotách farieb

Nie je možné zapamätať si číselné hodnoty farieb, takže často vzniká otázka, ako zistiť číselnú hodnotu pozadia bunky. Nasledujúci kód VBA Excel zobrazuje správy o číselných hodnotách predtým priradených farieb.

Príklad kódu 2:

Sub ColorTest2() Rozsah MsgBox("A1").Interior.Color MsgBox Range("A4:D8").Interior.Color MsgBox Range("C12:D17").Cells(4).Interior.Color MsgBox Cells(3 .6).Interiér.Farba Koniec Sub

Namiesto zobrazovania správ môžete priradiť číselné hodnoty farby na premenné tak, že ich deklarujete ako Long.

Použitie preddefinovaných konštánt

VBA Excel má preddefinované konštanty pre bežne používané farby výplne buniek:

Farba je bunke priradená preddefinovanou konštantou v Excel VBA rovnakým spôsobom ako číselná hodnota:

Príklad kódu 3:

Rozsah("A1").Interiér.Farba = vbZelená

RGB farebný model

Farebný systém RGB je kombináciou troch základných farieb rôznej intenzity: červenej, zelenej a modrej. Môžu nadobúdať hodnoty od 0 do 255. Ak sú všetky hodnoty 0, je čierna, ak sú všetky hodnoty 255, je biela.

Vyberte si farbu a spoznajte ju RGB hodnoty Môžete použiť paletu Excel:

Aby bolo možné bunke alebo rozsahu priradiť farbu pomocou hodnôt RGB, musia byť prevedené na desatinné číslo označujúci farbu. Pre toto existuje Funkcia VBA Excel, ktorý sa nazýva RGB.

Príklad kódu 4:

Rozsah("A1").Interiér.Farba = RGB(100, 150, 200)

Vlastnosť.Interior.ColorIndex objektu Range

Pred príchodom Excelu 2007 existovala len obmedzená paleta na vyplnenie buniek pozadím, pozostávajúca z 56 farieb, ktorá sa zachovala dodnes. Každá farba v tejto palete má priradený index od 1 do 56. Bunke môžete priradiť farbu podľa indexu alebo zobraziť správu o nej pomocou vlastnosti.Interior.ColorIndex:

Príklad kódu 5:

Rozsah("A1").Interior.ColorIndex = 8 Rozsah MsgBox("A1").Interior.ColorIndex

Obmedzenú paletu na vyplnenie buniek pozadím môžete zobraziť spustením vo VBA Excel je najjednoduchší makro:

Príklad kódu 6:

Sub ColorIndex() Dim i As Byte For i = 1 až 56 Cells(i, 1).Interior.ColorIndex = i Next End Sub

Čísla riadkov aktívneho hárku od 1 do 56 budú zodpovedať indexu farieb a bunka v prvom stĺpci bude vyplnená pozadím zodpovedajúcim indexu.

Môžete vidieť hotovú štandardnú paletu 56 farieb.

Vyplnenie bunky farbou vo VBA Excel. Pozadie bunky. Vlastnosti.Interior.Color a.Interior.ColorIndex. RGB farebný model. Štandardná paleta 56 farieb.

Vlastnosť.Interior.Color objektu Range

Počnúc Excelom 2007 je primárnym spôsobom, ako vyplniť rozsah alebo samostatnú bunku farbou (vykreslenie, pridanie, zmena pozadia), použiť vlastnosť .Interior.Color objektu Range priradením hodnoty farby vo forme desatinné číslo od 0 do 16777215 (celkovo 16777216 farieb).

Vyplňte bunku farbou vo VBA Excel

Príklad kódu 1:

SubColorTest1()

Rozsah("A1").Interior.Color = 31569

Rozsah("A4:D8").Interior.Color = 4569325

Rozsah("C12:D17").Cells(4).Interior.Color = 568569

Bunky (3, 6). Farba interiéru = 12659

Umiestnite vzorový kód do svojho programového modulu a stlačte tlačidlo na paneli nástrojov "Run Sub" alebo na klávesnici "F5", kurzor by mal byť vo vnútri vykonávaného programu. Na aktívnom strana v Exceli bunky a rozsah vybrané v kóde budú podľa toho zafarbené.

Existuje jedna zaujímavá nuansa: ak priradíte vlastnosť .Interiér.Farba zápornú hodnotu od -16777215 do -1, potom bude farba zodpovedať hodnote rovnajúcej sa súčtu maximálnej hodnoty palety (16777215) a priradenej zápornej hodnoty. Napríklad vyplnenie všetkých troch buniek po vykonaní nasledujúceho kódu bude rovnaké:

Namiesto zobrazovania správ môžete premenným priradiť číselné farebné hodnoty tak, že ich deklarujete ako dlhé.

Použitie preddefinovaných konštánt

VBA Excel má preddefinované konštanty pre bežne používané farby výplne buniek:

Farba je bunke priradená preddefinovanou konštantou v Excel VBA rovnakým spôsobom ako číselná hodnota:

Príklad kódu 3:

Rozsah("A1").Interiér.Farba = vbZelená

RGB farebný model

Farebný systém RGB je kombináciou troch základných farieb rôznej intenzity: červenej, zelenej a modrej. Môžu nadobúdať hodnoty od 0 do 255. Ak sú všetky hodnoty 0, je čierna, ak sú všetky hodnoty 255, je biela.

Môžete si vybrať farbu a zistiť jej hodnoty RGB pomocou palety Excel:

Otvorí sa v novom okne

Predtým, ako budete môcť bunke alebo rozsahu priradiť farbu pomocou hodnôt RGB, je potrebné ich previesť na desatinné číslo predstavujúce farbu. Na tento účel existuje funkcia VBA Excel, ktorá sa nazýva RGB.

Príklad kódu 4:

Rozsah("A1").Interiér.Farba = RGB(100, 150, 200)

Vlastnosť.Interior.ColorIndex objektu Range

Pred príchodom Excelu 2007 existovala len obmedzená paleta na vyplnenie buniek pozadím, pozostávajúca z 56 farieb, ktorá sa zachovala dodnes. Každá farba v tejto palete má priradený index od 1 do 56. Bunke môžete priradiť farbu podľa indexu alebo zobraziť správu o nej pomocou vlastnosti.Interior.ColorIndex.