Excel VBAでは、セルに付けられた**メモ(旧コメント)**の中身を検索し、特定のキーワードが含まれる場合に処理を行うことができます。
この記事では、範囲内のすべてのメモから文字列を検索し、該当セルを自動で色付けする方法をご紹介いたします。
目次
VBAコード:メモに含まれる文字列を検索して該当セルを強調表示
Sub HighlightCellsWithCommentKeyword()
    Dim targetCell As Range
    Dim commentRange As Range
    Dim keyword As String
    keyword = "森"  ' 検索したい文字列
    On Error Resume Next
    Set commentRange = Range("B2:F8").SpecialCells(xlCellTypeComments)
    On Error GoTo 0
    If commentRange Is Nothing Then
        MsgBox "指定範囲にはメモが存在しません。"
        Exit Sub
    End If
    For Each targetCell In commentRange
        If InStr(targetCell.Comment.Text, keyword) > 0 Then
            targetCell.Interior.ColorIndex = 6  ' 黄色で強調表示
        End If
    Next targetCell
End Sub
コードの解説
| 処理内容 | 説明 | 
|---|---|
SpecialCells(xlCellTypeComments) | メモのあるセルだけを取得 | 
InStr(文字列, 検索語) | 特定文字列が含まれているかを調べる | 
Interior.ColorIndex | セルの背景色を変更(6は黄色) | 
On Error Resume Next | メモが1件もない場合のエラー回避 | 
応用ポイント
keywordを変数にしているため、他の語句(例:「確認」「修正」「対応済」など)に簡単に変更できます。- 検索対象範囲は 
Range("B2:F8")で指定しており、必要に応じて任意の範囲に変更できます。 ColorIndexの値を変更すれば、塗りつぶす色も自由に変更可能です。
使用例
- 「森」さんに関するメモだけを見つけたい
 - 「要確認」などのキーワードが含まれるメモ付きセルを強調表示したい
 - メモの内容に応じて処理を分岐させたい場合の下準備として
 
まとめ|メモの内容もVBAで検索・可視化できる
Excel VBAを用いれば、通常は目視で確認するしかないメモ(コメント)内の情報も、条件付きで一括検索・処理が可能です。
今回の方法を応用すれば、メモのキーワードに応じて以下のような処理も実現できます。
- セルの強調表示(色付け)
 - メモの内容を一覧表として抽出
 - 対象メモの修正や削除
 
日常的な業務でExcelコメントを多用する場面では、非常に有効なテクニックとなります。
