Pogojno oblikovanje v Excelu VBA
Pogojno oblikovanje lahko uporabimo za celico ali obseg celic v Excelu. Pogojna oblika je oblika, ki se uporablja samo za celice, ki izpolnjujejo določena merila, recimo vrednosti nad določeno vrednostjo, pozitivne ali negativne vrednosti ali vrednosti z določeno formulo itd. To pogojno oblikovanje lahko izvedemo tudi v programu excel VBA z uporabo ' Zbirka pogojev formatiranja ' v makro / postopku.
Pogoj formata se uporablja za predstavitev pogojnega formata, ki ga lahko nastavimo s klicanjem metode, ki vrne spremenljivko te vrste. Vsebuje vse pogojne formate za posamezen obseg in lahko vsebuje samo tri pogoje formata.
FormatConditions.Add / Modify / Delete se uporablja v VBA za dodajanje / spreminjanje / brisanje predmetov FormatCondition v zbirko. Vsaka oblika je predstavljena z objektom FormatCondition. FormatConditions je lastnost predmeta Range in dodajte naslednje parametre s spodnjo sintakso:
FormatConditions.Add (Type, Operator, Formula1, Formula2)
Sintaksa formule Dodaj ima naslednje argumente:
- Tip: obvezno, predstavlja, ali pogojna oblika temelji na vrednosti, prisotni v celici ali izrazu.
- Operator: Neobvezno, predstavlja operaterja, ki se uporablja z vrednostjo, kadar 'Type' temelji na vrednosti celice.
- Formula1: Izbirno, predstavlja vrednost ali izraz, povezan s pogojno obliko.
- Formula2: Izbirno, predstavlja vrednost ali izraz, povezan z drugim delom pogojnega formata, kadar je parameter: 'Operator' bodisi 'xlBetween' ali 'xlNotBetween.'
FormatConditions.Modify ima tudi isto sintakso kot FormatConditions.Add.
Sledi seznam nekaterih vrednosti / oštevilčenja, ki jih lahko sprejmejo nekateri parametri v 'Dodaj' / 'Spremeni':

Primeri pogojnega oblikovanja VBA
Spodaj so primeri pogojnega oblikovanja v excelu VBA.
Primer # 1
Recimo, da imamo datoteko Excel, ki vsebuje ime in oznake nekaterih študentov, in želimo oznake označiti kot krepko in modro, kar je več kot 80, kot krepko in rdeče, kar je manj kot 50. Oglejmo si podatke, ki jih vsebuje datoteka:

Za to uporabimo FormatConditions.Dodajte funkcijo kot spodaj:
- Pojdite na Razvijalec -> Urejevalnik Visual Basic:

- Z desno miškino tipko kliknite ime delovnega zvezka v podoknu 'Project-VBAProject' -> 'Vstavi' -> 'Modul'.

- Zdaj zapišite kodo / postopek v ta modul:
Koda:
Podoblikovanje () Konec pod

- Določite spremenljivko rng, condition1, condition2:
Koda:
Podoblikovanje () Dim rng As Range Dim condition1 Kot FormatCondition, condition2 As FormatCondition End Sub

- S funkcijo VBA 'Range' nastavite / popravite obseg želenega pogojnega oblikovanja:
Koda:
Podoblikovanje () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") End Sub

- Iz obsega izbrišite / počistite obstoječe pogojno oblikovanje (če obstaja) z uporabo »FormatConditions.Delete«:
Koda:
Podoblikovanje () Dim rng As Range Dim condition1 Kot FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete End Sub

- Zdaj določite in nastavite merila za vsako pogojno obliko z uporabo 'FormatConditions.Add':
Koda:
Podoblikovanje () Dim rng As Range Dim condition1 Kot FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Nastavite pogoj2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") End Sub

- Določite in nastavite obliko, ki se bo uporabljala za vsak pogoj

Kopirajte in prilepite to kodo v modul razreda VBA.
Koda:
Podoblikovanje () 'Določanje spremenljivk: Dim rng As Range Dim pogoj1 Kot FormatCondition, condition2 Kot FormatCondition' Določitev / nastavitev obsega, v katerem je želeno pogojno oblikovanje Nastavi rng = Obseg ("B2", "B11") 'Na izbrišite / počistite obstoječe pogojno oblikovanje iz obsega rng.FormatConditions.Delete 'Določanje in nastavitev meril za vsak pogojni format Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80") Set condition2 = rng.FormatConditions. Dodaj (xlCellValue, xlLess, "= 50") 'Določanje in nastavitev oblike, ki se bo uporabila za vsak pogoj S pogojem1. Font.Color = vbBlue. Font.Bold = True End With With condition2 .Font.Color = vbRed .Font. Krepko = True End With End Sub
Zdaj, ko zaženemo to kodo s tipko F5 ali ročno, vidimo, da so oznake, manjše od 50, poudarjene krepko in rdeče, tiste, ki so večje od 80, pa krepko in modro, kot sledi:

2. primer
Recimo, da v zgornjem primeru imamo še en stolpec, ki navaja, da je študent "Topper", če je dosegel več kot 80 točk, sicer pa je proti njim napisan Pass / Fail. Zdaj želimo poudariti vrednosti, navedene kot „Topper“, kot krepko in modro. Oglejmo si podatke, ki jih vsebuje datoteka:

V tem primeru bi koda / postopek delovala na naslednji način:
Koda:
Oblikovanje podbesedila () Konec pod

Določite in nastavite obliko, ki se bo uporabljala za vsak pogoj
Koda:
Sub TextFormatting () z obsegom ("c2: c11"). FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") With .Font .Bold = True .Color = vbBlue End with End With End Sub

V zgornji kodi vidimo, da želimo preizkusiti, ali obseg: 'C2: C11' vsebuje niz: 'Topper', tako da parameter: 'Onamestor' v 'Format.Add' upošteva oštevilčenje: 'Xcontains' v preizkusite ta pogoj v fiksnem obsegu (tj. C2: C11) in nato v tem obsegu izvedite zahtevano pogojno oblikovanje (spremembe pisave).
Zdaj, ko to kodo zaženemo ročno ali s pritiskom na tipko F5, vidimo, da so vrednosti celic z oznako »Topper« označene z modro in krepko:

Below are some other instances/criteria that can be used to test and thus apply VBA conditional formatting on:
- Format by Time Period
- Average condition
- Colour Scale condition
- IconSet condition
- Databar condition
- Unique Values
- Duplicate Values
- Top10 values
- Percentile Condition
- Blanks Condition, etc.
With different conditions to be tested, different values/enumeration are taken by parameters of ‘Add.’
Things to Remember About VBA Conditional Formatting
- ‘Add’ method with ‘FormatConditions’ is used to create a new conditional format, ’Delete’ method to delete any conditional format, and ‘Modify’ method to alter any existing conditional format.
- The ‘Add’ method with ‘FormatConditions Collection’ fails if more than three conditional formats are created for a single range.
- Če želite za obseg uporabiti več kot tri pogojne formate z uporabo metode »Dodaj«, lahko uporabimo »Če« ali »izberi veliko črko«.
- Če ima metoda "Dodaj" svoj parameter "Type" kot: "xlExpression", potem je parameter "Operator" prezrt.
- Parametra: "Formula1" in "Formula2" v metodi "Dodaj" sta lahko sklic na celico, konstantna vrednost, vrednost niza ali celo formula.
- Parameter: 'Formula2' se uporablja samo, kadar je parameter: 'Operator' bodisi 'xlBetween' bodisi 'xlNotBetween', sicer je prezrt.
- Če želite odstraniti vse pogojno oblikovanje s katerega koli delovnega lista, lahko uporabimo metodo 'Delete', kot sledi:
Celice.FormatConditions.Delete