Excel VBAで指定した範囲に特定の言葉が入っているか確認する

VBAを使って、指定した範囲に特定の言葉が入っているかを確認する方法をサンプルアプリを使って解説していきます。
まず、VBAを使った検索方法について解説します。VBAを使うことで、特定の言葉が入っているかを自動的に検索することができます。VBAを使うことで、手動で行うよりも簡単かつ効率的に特定の言葉を検索することができます。
次に、VBAを使った条件分岐を用いた特定の言葉の検索方法について解説します。条件分岐を使うことで、特定の言葉が入っている場合には、それに対する処理を行うことができます。例えば、特定の言葉が入っている場合には、セルの色を変えたり、別の処理を行うことができます。
最後に、VBAを使った特定の言葉が入っているセルを一覧で表示する方法について解説します。VBAを使うことで、特定の言葉が入っているセルを一覧で表示することができます。この方法を使うことで、一覧表示されたセルを効率的に編集することができます。
この記事をみていただければ、VBAを使ったEXCELの特定の言葉の検索方法を効率的に学ぶことができます。VBAを使った作業が苦手な方も、手順を追って詳しく解説するので、安心して取り組むことができます。ぜひ参考にしてみてください。

サンプルアプリの説明

「特定ワード検索」ボタンをクリックすると、検索でヒットした箇所のセルが着色され、右隣の表に「ワードが入っているセルの一覧」が作成されます。

サンプルコードの処理内容

検索する特定ワードを配列「Array(・・・・・・・」の箇所で設定して、指定したセルの範囲「Range(“C6:C15")」に検索ワードが含まれているか確認してます。
条件分岐「If InStr(cell.Value, words(i)) > 0 」でワードが含まれていると「1」以上になるので、if文以下を実行します。今回は「cell.Interior.Color = RGB(255, 255, 0)」でセルを黄色に着色しています。

    words = Array("佐藤太郎", "鈴木二郎", "田中太郎") '検索したい単語を配列に格納
    For Each cell In Range("C6:C15") '検索範囲を指定
     'For文で配列で指定した検索ワードを一つ一つ取り出してセルの内容と比較します
        For i = LBound(words) To UBound(words)
            If InStr(cell.Value, words(i)) > 0 Then '検索したい単語が含まれているか確認
               cell.Interior.Color = RGB(255, 255, 0) '含まれていればセルの背景色を黄色に変更
            End If
        Next i
    Next cell

特定の言葉が入っているセルの箇所を以下で一覧にしています。
「cell.Row」、「cell.Column」 でヒットしたセルの行番号と列番号を、「cell.Value」で検索ワードを表にセットしています。

     '検索ワードが入っているセルを一覧で表示
     Cells(k, 5) = cell.Row
     Cells(k, 6) = cell.Column
     Cells(k, 7) = cell.Value      
     '検索ワード一覧の次の行を指定
      k = k + 1

コード全体の解説については事項の「サンプルコード」を参照ください。

サンプルコード   アプリの作成手順はこちら

Sub CheckWords()

 '変数の定義
 Dim cell As Range
 Dim words As Variant
 Dim i As Long, j As Long, k As Long
    
    '検索ワードが入っているセルの一覧表を削除
    Range("E6:G15").ClearContents
    '検索ワードが入っている一覧表の1行目の行番号を指定
    k = 6
    
    Range("C6:C15").Interior.ColorIndex = xlNone '検索範囲内のセルの背景色をもとに戻す
    
    words = Array("佐藤太郎", "鈴木二郎", "田中太郎") '検索したい単語を配列に格納
    
    For Each cell In Range("C6:C15") '検索範囲を指定
    
        For i = LBound(words) To UBound(words)
        
            If InStr(cell.Value, words(i)) > 0 Then '検索したい単語が含まれているか確認
            
               j = j + 1 '該当箇所をカウント
               
               cell.Interior.Color = RGB(255, 255, 0) 'セルの背景色を黄色に変更
              
              '検索ワードが入っているセルを一覧で表示
               Cells(k, 5) = cell.Row
               Cells(k, 6) = cell.Column
               Cells(k, 7) = cell.Value
               
               '検索ワード一覧の次の行を指定
               k = k + 1

            End If
        
        Next i
                  
    Next cell
    
    '結果をメッセージで表示
    MsgBox j & " 箇所該当しています。"
    
End Sub