目次
概要
Excelの一覧データを整理する際、「特定の文字列を含む場合はある列へ、それ以外は別の列へ」という処理を行いたい場合があります。本記事では、VBAのLike
演算子を使って、I列(ここでは例としてC列とD列に振り分け)にデータを整理する方法をご紹介します。
サンプルコード
Sub ArrangeDataByKeyword()
Dim targetStr As String
Dim srcRange As Range
Dim i As Long
Dim outputRow As Long
' 判定対象範囲を設定
Set srcRange = Range("B2:B15")
outputRow = 1
' 1行ずつ判定して列振り分け
For i = 1 To srcRange.Rows.Count
targetStr = srcRange.Cells(i, 1).Value
If targetStr Like "カテゴリ*" Then
' 特定文字列で始まる場合はC列へ
Cells(outputRow, 9).Value = targetStr
Else
' それ以外はD列へ
Cells(outputRow, 10).Value = targetStr
outputRow = outputRow + 1
End If
Next i
End Sub
コード解説
- srcRangeの設定
判定対象のセル範囲をSet srcRange = Range("B2:B15")
で指定します。 - Like演算子の活用
Like "カテゴリ*"
のように書くと、文字列が「カテゴリ」で始まる場合に一致します。
アスタリスク*
は任意の文字列にマッチします。 - Cellsプロパティで列指定
条件に一致した場合は I列(例では列番号9)、それ以外はJ列(列番号10)に出力します。 - outputRowの管理
出力先の行をカウントアップすることで、結果を縦に並べて記録します。
応用例
- 「商品分類」「顧客分類」などのキーワードでデータを2種類に分割
- 「○○支店」と「その他支店」でデータを整理
- キャンペーン対象商品のみ別列に抽出
まとめ
VBAのLike
演算子を使えば、特定文字を含むデータを簡単に振り分けることができます。複雑な条件判定やパターンマッチも可能なため、データ整理やレポート作成の効率化に役立ちます。