Vba: voorwaardelijke opmaak op cellen toepassen
U kunt in VBA de volgende methoden gebruiken om voorwaardelijke opmaak op cellen toe te passen:
Methode 1: Voorwaardelijke opmaak toepassen op basis van een voorwaarde
Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")
'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With
End Sub
Methode 2: Voorwaardelijke opmaak toepassen op basis van meerdere voorwaarden
Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)
'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With
With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With
With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With
End Sub
Methode 3: Verwijder alle voorwaardelijke opmaakregels uit cellen
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende gegevensset in Excel:
Voorbeeld 1: Voorwaardelijke opmaak toepassen op basis van een voorwaarde
We kunnen de volgende macro gebruiken om cellen in het bereik B2:B11 met een waarde groter dan 30 te vullen met een groene achtergrond, een zwart lettertype en een vetgedrukte tekststijl:
Sub ConditionalFormatOne()
Dim rg As Range
Dim cond As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" B2:B11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'apply conditional formatting to any cell in range B2:B11 with value greater than 30
Set cond = rg.FormatConditions.Add(xlCellValue, xlGreater, " =30 ")
'define conditional formatting to use
With cond
.Interior.Color = vbGreen
.Font.Color = vbBlack
.Font.Bold = True
End With
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat elke cel in het bereik B2:B11 met een waarde groter dan 30 onderhevig is aan voorwaardelijke opmaak.
Elke cel met een waarde gelijk aan of kleiner dan 30 wordt gewoon met rust gelaten.
Voorbeeld 2: Voorwaardelijke opmaak toepassen op basis van meerdere voorwaarden
We kunnen de volgende macro gebruiken om voorwaardelijke opmaak toe te passen op cellen in het bereik A2:A11 op basis van hun teamnaam:
Sub ConditionalFormatMultiple()
Dim rg As Range
Dim cond1 As FormatCondition, cond2 As FormatCondition, cond3 As FormatCondition
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'specify rules for conditional formatting
Set cond1 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Mavericks ”)
Set cond2 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Blazers ”)
Set cond3 = rg.FormatConditions.Add(xlCellValue, xlEqual, “ Celtics ”)
'define conditional formatting to use
With cond1
.Interior.Color = vbBlue
.Font.Color = vbWhite
.Font.Italic = True
End With
With cond2
.Interior.Color = vbRed
.Font.Color = vbWhite
.Font.Bold = True
End With
With cond3
.Interior.Color = vbGreen
.Font.Color = vbBlack
End With
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat de cellen met de teamnamen „Mavericks“, „Blazers“ en „Celtics“ allemaal onderworpen zijn aan specifieke voorwaardelijke opmaak.
Het enige team met de naam „Lakers“ wordt met rust gelaten omdat we geen voorwaardelijke opmaakregels hebben gespecificeerd voor cellen met die teamnaam.
Voorbeeld 3: Verwijder alle voorwaardelijke opmaakregels uit cellen
Ten slotte kunnen we de volgende macro gebruiken om alle voorwaardelijke opmaakregels uit cellen op het huidige blad te verwijderen:
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Houd er rekening mee dat alle voorwaardelijke opmaak uit elk van de cellen is verwijderd.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: het aantal tekens in een string tellen
VBA: hoe controleer je of een string een andere string bevat?
VBA: een formule voor “Als” de cel bevat “