Vba: 重複する値に条件付き書式を適用する
VBA で次の基本構文を使用すると、特定の範囲内の重複する値に条件付き書式設定を適用できます。
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
この特定の例では、Excel の現在のシートのA2:A11範囲内の重複する値に条件付き書式を適用します。
次の例は、この構文を実際に使用する方法を示しています。
例: VBA を使用して重複する値に条件付き書式を適用する
Excel に次の値の列があるとします。
次の条件付き書式設定を列 A の重複する値に適用するとします。
- 青色の背景
- 黒文字
- 太字
これを行うには、次のマクロを作成できます。
Sub ConditionalFormatDuplicates()
Dim rg As Range
Dim uv As UniqueValues
'specify range to apply conditional formatting
Set rg = Range(" A2:A11 ")
'clear any existing conditional formatting
rg.FormatConditions.Delete
'identify duplicate values in range A2:A11
Set uv = rg.FormatConditions.AddUniqueValues
uv.DupeUnique = xlDuplicate
'apply conditional formatting to duplicate values
uv.Interior.Color = vbBlue
uv.Font.Color = vbWhite
uv.Font.Bold = True
End Sub
このマクロを実行すると、次の出力が表示されます。
条件付き書式設定は、重複した値を持つ列 A の各セルに適用されることに注意してください。
条件付き書式を別のセル範囲に適用する場合は、マクロ内のA2:A11を別の範囲に置き換えます。
さらに、現在のシートのセルからすべての条件付き書式を削除する場合は、次のマクロを作成してそれを実行できます。
Sub RemoveConditionalFormatting()
ActiveSheet.Cells.FormatConditions.Delete
End Sub
このマクロを実行すると、次の出力が表示されます。
条件付き書式はセルから削除されていることに注意してください。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: 範囲内の一意の値を数える方法
VBA: 特定のテキストを含むセルを数える方法
VBA: COUNTIF 関数と COUNTIFS 関数の書き方