このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】ある文字を含むセルに色を塗るプログラム

Excelで大量のデータを扱っていると、「特定の文字を含むセルを見つけて色を付けたい」ということがよくあります。

たとえば、商品コードや担当者名など、特定のキーワードを含むセルに色をつけて強調したい場合です。

この作業は手作業で行うと手間がかかりますが、VBAマクロを使えば一瞬で処理できます。

今回は、ある文字列を含むセルに対して、黄色で色を塗るVBAプログラムを紹介します。

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")

このように部分一致のさせ方を変えられるので、自分なりにカスタムして活用してみて下さい。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい