【VBA】ある文字を含むセルに色を塗るプログラム
Excelで大量のデータを扱っていると、「特定の文字を含むセルを見つけて色を付けたい」ということがよくあります。
たとえば、商品コードや担当者名など、特定のキーワードを含むセルに色をつけて強調したい場合です。
この作業は手作業で行うと手間がかかりますが、VBAマクロを使えば一瞬で処理できます。
今回は、ある文字列を含むセルに対して、黄色で色を塗るVBAプログラムを紹介します。
ある文字と一致するセルを黄色に塗るVBAプログラム
Sub ColoringTargetCell()
Dim cell As Range
Dim ws As Worksheet
Dim targetText As String
targetText = "ABC" ' ハッチング対象の文字列
Set ws = ActiveSheet
For Each cell In ws.UsedRange
If cell.Value = targetText Then
With cell.Interior
.Color = RGB(255, 255, 0) ' 黄色
End With
End If
Next cell
End Sub
このマクロは、アクティブシート上のすべてのセルの中から、指定した文字列と完全に一致するセルを探して黄色に塗るプログラムです。
With cell.Interior
.Color = RGB(255, 255, 0) ' 黄色
End With
実際に色を塗っているのは、この部分です。
セルに色を塗る方法については、詳しくは以下の記事をご覧ください。
ワイルドカードに対応:Like演算子を使って部分一致で色を塗る
「完全一致ではなく、“ABC”を含むすべてのセルを対象にしたい」といったケースには、Like 演算子を使うことで対応可能です。
Like はワイルドカード(* や ?)を使ったパターンマッチに対応しており、柔軟な条件指定ができます。
Sub HatchWithWildcard()
Dim cell As Range
Dim ws As Worksheet
Dim targetPattern As String
targetPattern = "*ABC*" ' 「ABC」を含むセル(前後に何があってもよい)
Set ws = ActiveSheet
For Each cell In ws.UsedRange
If cell.Value Like targetPattern Then
With cell.Interior
.Color = RGB(255, 255, 0)
End With
End If
Next cell
End Sub
このプログラムでは、Like演算子を使って部分一致に対応できるようにしています。
targetPattern = "*ABC*" ' 「ABC」を含むセル(前後に何があってもよい)
この部分を書き換えることで、部分一致のさせ方を変えることができます。
"*ABC*"
:ABCを含むすべての文字列"ABC*"
:ABCで始まる文字列"*ABC"
:ABCで終わる文字列"A?C"
:AとCの間に1文字ある文字列(例: “AXC")
このように部分一致のさせ方を変えられるので、自分なりにカスタムして活用してみて下さい。