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コメントを多用する場面では、非常に有効なテクニックとなります。