VBA: n ehdollinen muotoilu | Käytä ehdollista muotoa VBA Excelin avulla

Ehdollinen muotoilu Excel VBA: ssa

Voimme soveltaa ehdollista muotoilua soluun tai solualueeseen Excelissä. Ehdollinen muoto on muoto, jota käytetään vain soluihin, jotka täyttävät tietyt ehdot, esimerkiksi tietyn arvon ylittävät arvot, positiiviset tai negatiiviset arvot tai tietyn kaavan arvot jne. Tämä ehdollinen muotoilu voidaan tehdä myös Excelin VBA-ohjelmoinnissa " Makroehtojen kokoelma " makrossa / menettelyssä.

Muotoehtoa käytetään kuvaamaan ehdollista muotoa, joka voidaan asettaa kutsumalla menetelmä, joka palauttaa kyseisen tyyppisen muuttujan. Se sisältää kaikki ehdolliset muodot yhdelle alueelle, ja siinä voi olla vain kolme muotoehtoa.

FormatConditions.Add / Modify / Delete käytetään VBA: ssa FormatCondition-objektien lisäämiseen / muokkaamiseen / poistamiseen kokoelmaan. Kutakin muotoa edustaa FormatCondition-objekti. FormatConditions on omaisuutta Range kohteen ja Add on seuraavat parametrit kanssa alla tapaan:

FormatConditions.Add (tyyppi, operaattori, kaava1, kaava2) 

Lisää kaavan syntaksissa on seuraavat argumentit:

  • Tyyppi: Pakollinen, edustaa, jos ehdollinen muoto perustuu solussa olevaan arvoon tai lausekkeeseen
  • Operaattori: Valinnainen, edustaa operaattoria, jota käytetään arvolla, kun 'Type' perustuu soluarvoon
  • Kaava1: Valinnainen, edustaa ehdolliseen muotoon liittyvää arvoa tai lauseketta.
  • Kaava2: Valinnainen, edustaa arvoa tai lauseketta, joka liittyy ehdollisen muodon toiseen osaan, kun parametri: 'Operaattori' on joko 'xlBetween' tai 'xlNotBetween'

FormatConditions.Modify-sovelluksella on myös sama syntaksin muoto kuin FormatConditions.Add.

Seuraavassa on luettelo joistakin arvoista / luetteloista, jotka voidaan ottaa joillakin parametreillä 'Lisää' / 'Muokkaa':

Esimerkkejä VBA: n ehdollisesta muotoilusta

Alla on esimerkkejä ehdollisesta muotoilusta excel vba: ssa.

Voit ladata tämän VBA: n ehdollisen muotoilun mallin täältä - VBA: n ehdollisen muotoilun malli

Esimerkki 1

Sanotaan, että meillä on Excel-tiedosto, joka sisältää joidenkin opiskelijoiden nimet ja merkinnät, ja haluamme määrittää / korostaa merkit lihavoituna ja sinisenä, joka on suurempi kuin 80, ja lihavoituna ja punaisena, joka on alle 50. Katsotaanpa tiedostossa olevat tiedot:

Tämän saavuttamiseksi käytämme FormatConditions.Add-toimintoa seuraavasti:

  • Siirry kohtaan Kehittäjä -> Visual Basic Editor:

  • Napsauta hiiren kakkospainikkeella työkirjan nimeä Project-VBAProject-ruudussa-> 'Lisää' -> 'Moduuli'.

  • Kirjoita nyt koodi / menettely tähän moduuliin:

Koodi:

 Alamuotoilu () End Sub 

  • Määritä muuttuja rng, condition1, condition2:

Koodi:

 Alamuotoilu () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition End Sub 

  • Aseta / korjaa alue, jolle ehdollinen muotoilu on toivottava, käyttämällä VBA 'Range' -toimintoa:

Koodi:

 Alamuotoilu () Hämärä rng Alueena Hämärä ehto1 As FormatCondition, ehto2 As FormatCondition Aseta rng = Alue ("B2", "B11") Loppu 

  • Poista / tyhjennä kaikki olemassa olevat ehdolliset muotoilut alueelta käyttämällä 'FormatConditions.Delete':

Koodi:

 Alamuotoilu () Hämärä rng Alueena Hämärä ehto1 As FormatCondition, ehto2 As FormatCondition Aseta rng = Alue ("B2", "B11") rng.FormatConditions.Delete End Sub

  • Määritä ja aseta nyt ehdot jokaiselle ehdolliselle muodolle käyttämällä 'FormatConditions.Add':

Koodi:

 Alamuotoilu () Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition Set rng = Range ("B2", "B11") rng.FormatConditions.Delete Set condition1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80 ") Aseta ehto2 = rng.FormatConditions.Add (xlCellValue, xlLess," = 50 ") End Sub 

  • Määritä ja aseta kullekin ehdolle käytettävä muoto

Kopioi ja liitä tämä koodi VBA-luokan moduuliin.

Koodi:

Alamuotoilu () 'Muuttujien määrittely: Dim rng As Range Dim condition1 As FormatCondition, condition2 As FormatCondition' Korjaamalla / asettamalla alue, jolle ehdollinen muotoilu halutaan Aseta rng = Alue ("B2", "B11") ' poista / tyhjennä kaikki olemassa olevat ehdolliset muotoilut alueelta rng.FormatConditions.Delete 'Kunkin ehdollisen muodon ehtojen määrittäminen ja asettaminen Aseta ehto1 = rng.FormatConditions.Add (xlCellValue, xlGreater, "= 80") Aseta ehto2 = rng.FormatConditions. Lisää (xlCellValue, xlLess, "= 50") 'Kullekin ehdolle sovellettavan muodon määritteleminen ja asettaminen With condition1 .Font.Color = vbBlue .Font.Bold = True End With With condition2 .Font.Color = vbRed .Font. Lihavoitu = True End With End Sub

Nyt kun suoritamme tämän koodin F5-näppäimellä tai manuaalisesti, näemme, että alle 50 merkit korostetaan lihavoituna ja punaisena, kun taas yli 80 merkit korostetaan lihavoituna ja sinisenä seuraavasti:

Huomautus: Jotkut ominaisuudet muotoiltujen solujen ulkonäölle, joita voidaan käyttää FormatConditionin kanssa, ovat:

Esimerkki 2

Sanotaan, että yllä olevassa esimerkissä meillä on toinen sarake, jossa todetaan myös, että opiskelija on "Topper", jos hän saa yli 80 pistettä, muuten Hyväksytty / hylätty kirjoitetaan heitä vastaan. Nyt haluamme tuoda esiin arvot, jotka on merkitty nimellä "Topper" lihavoituna ja sinisenä. Katsotaanpa tiedostossa olevat tiedot:

Tässä tapauksessa koodi / menettely toimisi seuraavasti:

Koodi:

 Alitekstin muotoilu () Loppu alaviesti 

Määritä ja aseta kullekin ehdolle käytettävä muoto

Koodi:

 Sub TextFormatting () With Range ("c2: c11"). FormatConditions.Add (xlTextString, TextOperator: = xlContains, String: = "topper") With .Font .Bold = True .Color = vbBlue Loppu loppuun End Sub 

Näemme yllä olevasta koodista, että haluamme testata, sisältääkö alue: 'C2: C11 "merkkijonon:" Topper ", joten parametrin" Operator "muodossa" Format.Add "otetaan luettelo:" xlContains ", testata tämä ehto kiinteällä alueella (ts. C2: C11) ja tee sitten vaadittu ehdollinen muotoilu (kirjasimen muutokset) tällä alueella.

Nyt kun suoritamme tämän koodin manuaalisesti tai painamalla F5-näppäintä, näemme, että solun arvot 'Topper' korostetaan sinisellä ja lihavoidulla:

Huomaa: Olemme siis nähneet edellä olevista kahdesta esimerkistä, kuinka 'Lisää' -menetelmä toimii minkä tahansa soluarvokriteerin (numeerinen tai tekstimerkkijono) tapauksessa.

Alla on joitain muita esimerkkejä / ehtoja, joita voidaan käyttää VBA: n ehdollisen muotoilun testaamiseen ja soveltamiseen:

  • Alusta ajanjakson mukaan
  • Keskimääräinen kunto
  • Väriasteikon kunto
  • IconSet-tila
  • Tietokannan kunto
  • Ainutlaatuiset arvot
  • Päällekkäiset arvot
  • Top10-arvot
  • Percentile-tila
  • Aihion kunto jne.

Eri testattavissa olosuhteissa 'Lisää' -parametreillä otetaan erilaiset arvot / luettelo.

Muistettavaa VBA: n ehdollisesta muotoilusta

  • 'Lisää' -menetelmää, jossa on 'FormatConditions', käytetään uuden ehdollisen muodon luomiseen, 'Poista' -menetelmää minkä tahansa ehdollisen muodon poistamiseksi ja 'Muokkaa' -menetelmää muuttamaan olemassa olevaa ehdollista muotoa.
  • Lisäysmenetelmä FormatConditions-kokoelman kanssa epäonnistuu, jos yhdelle alueelle luodaan enemmän kuin kolme ehdollista muotoa.
  • Jos haluat lisätä alueelle enemmän kuin kolmea ehdollista muotoa Lisää-menetelmällä, voimme käyttää 'Jos' tai 'Valitse kirjainkoko'.
  • Jos 'Lisää' -menetelmän tyypin parametri on 'xlExpression', parametria 'Operaattori' ei oteta huomioon.
  • Parametrit: 'Kaava1' ja 'Kaava2' 'Lisää' -menetelmässä voivat olla soluviite, vakioarvo, merkkijonoarvo tai jopa kaava.
  • Parametria: 'Formula2' käytetään vain, kun parametri: 'Operator' on joko 'xlBetween' tai 'xlNotBetween', muuten se jätetään huomiotta.
  • Jos haluat poistaa kaikki ehdolliset muotoilut mistä tahansa laskentataulukosta, voimme käyttää Poista-menetelmää seuraavasti:
Solut.FormatConditions.Poista

$config[zx-auto] not found$config[zx-overlay] not found