指定された複数の検索語がA列のセルに含まれている場合に、その検索語をB列に「・」で区切って表示するExcel VBAプログラム。このコードは、各行をチェックし、条件に一致する文字列を抽出して複数ある場合には「・」で連結します。
VBAコード
Sub ExtractAndDisplayKeywords()
Dim ws As Worksheet
Set ws = ActiveSheet ' アクティブなシートを使用
Dim searchWords As Variant
searchWords = Array("最重要", "重要", "問題", "課題") ' 検索する文字列のリスト
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row ' A列で最後の非空白セルを見つける
Dim i As Long, j As Long
Dim foundWords As String
For i = 1 To lastRow
If ws.Cells(i, 1).Value <> "" Then ' 空白行でなければ
foundWords = "" ' 見つかった語を格納する変数を初期化
For j = LBound(searchWords) To UBound(searchWords)
If InStr(ws.Cells(i, 1).Value, searchWords(j)) > 0 Then ' セルに検索語が含まれているか
If Len(foundWords) > 0 Then
foundWords = foundWords & "・" ' 既に見つかった語があれば、区切り記号で連結
End If
foundWords = foundWords & searchWords(j) ' 新しい語を追加
End If
Next j
ws.Cells(i, 2).Value = foundWords ' B列に抽出した語を記載
Else
Exit For ' 空白行が見つかったらループを抜ける
End If
Next i
End Sub
コードの説明
変数初期化
foundWords
を使用して、見つかった検索語を保存し、後でB列に出力します。
二重ループ処理
- 外側のループは、1行目から最後の非空白行まで処理します。
- 内側のループは、指定された検索語が現在のセルに含まれるかを確認します。
検索語の抽出と表示
- 各検索語が見つかった場合、
foundWords
に追加し、必要に応じて「・」で区切ります。 - 最終的に抽出された文字列をB列に表示します
使用方法
- このVBAコードをExcelのVBAエディタに貼り付けます。
- コード内の
searchWords
配列に必要な検索語を設定し、実行します。
これで、各行のA列に含まれる指定された検索語がB列に「・」で区切られて表示されるようになります。