Excel VBAアクティブシートA列から必要な文字列のみを抽出してB列に書き込む

指定された複数の検索語が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. 外側のループは、1行目から最後の非空白行まで処理します。
  2. 内側のループは、指定された検索語が現在のセルに含まれるかを確認します。

検索語の抽出と表示

  1. 各検索語が見つかった場合、foundWordsに追加し、必要に応じて「・」で区切ります。
  2. 最終的に抽出された文字列をB列に表示します

使用方法

  1. このVBAコードをExcelのVBAエディタに貼り付けます。
  2. コード内のsearchWords配列に必要な検索語を設定し、実行します。

これで、各行のA列に含まれる指定された検索語がB列に「・」で区切られて表示されるようになります。

pythonでで同様のコード

スポンサーリンク
シェアする
hiroaki.satakeをフォローする
タイトルとURLをコピーしました