Excel でセル中に存在する特定の文字だけを一括で強調表示する

バックエンド

この記事では、Excel のセル中に指定した文字だけを強調表示する方法を紹介します。

なにかの調査で一覧データを Excel に貼ることは多いと思います。

このとき、特定のキーワードだけに色をつけるなりしてチェック箇所を分かりやすくしたいと思うことが多いのですが、標準機能では出来ませんでした(条件付き書式などを利用するとできそうですが、セル全体に効いてしまうため期待した動作をさせることが出来ません)。

やるにはマクロになります。が、とても簡単です。

以下は、選択範囲に対して A1 に指定した文字列を強調表示(赤字 & 太字)するサンプルです。

 Sub HighlightText()
     Dim cell As Range, pos As Integer, searchText As String
     searchText = Range("A1").Value
     # 以下のようにすると実行毎にすきな文字列を強調表示できる
     # Dim searchValue As String
     # searchValue = InputBox("Highlight which value?")
     # If searchValue = "" Then Exit Sub ' キャンセルボタンが押された場合    

     For Each cell In Selection.Cells
        pos = InStr(cell.Value, searchText)
        If pos > 0 Then
            With cell.Characters(Start:=pos, Length:=Len(searchText)).Font
            .Color = RGB(255, 0, 0)
            .Bold = True
            End With
        End If
     Next
 End Sub

例えば以下のようなデータがあった場合に、

以下のように、対象(今回はB列)を選択してメニューからマクロを選んで、上で作った関数を実行します。

すると、A1 で指定した文字だけ(今回は Todo)が強調表示できました。

A1 を State にすると State が強調表示されます。便利!