VBAで自動化 VBA一覧 セル・値の取得と貼り付け 貼り付け

【VBA】複数条件でデータ抽出する方法

Excel VBAで複数の条件を使用してデータを抽出する方法は、データのフィルタリングとセグメンテーションにおいて非常に実用的です。条件の組み合わせを用いて特定のデータを抽出し、それを別のシートに出力するプロセスを説明します。

Excel VBAで複数条件によるデータ抽出方法

1: ワークシートの設定

データを抽出する元のシートと、データを転記する先のシートを設定します。

Sub ExtractDataWithMultipleConditions()

Dim sourceWs As Worksheet
Set sourceWs = ThisWorkbook.Sheets("DataSheet")
Dim outputWs As Worksheet
Set outputWs = ThisWorkbook.Sheets("OutputSheet")

2: データ範囲と最終行の特定

データが存在する範囲を特定し、その範囲を基にデータを抽出します。
以下のサンプルコードではA列の最終行を取得します。【VBA】Rowsの基本的な使用方法・複数行を指定(数字・変数)・最終行取得

Dim lastRow As Long
lastRow = sourceWs.Cells(sourceWs.Rows.Count, "A").End(xlUp).Row
Dim outputRow As Long
outputRow = 1 ' 転記先シートの開始行

3: 複数条件でのデータ抽出と転記

指定した複数の条件に基づいてデータを抽出し、転記先のシートにデータを転記します。この例では、以下二つの条件を評価してデータ抽出します。
・B列が10以上の数値であること
・C列に”Criteria”という文字があること

Dim i As Long
For i = 1 To lastRow
' 複数の条件例: 第二列が10以上かつ第三列に特定の文字列が含まれる場合

If sourceWs.Cells(i, 2).Value >= 10 And InStr(sourceWs.Cells(i, 3).Value, "Criteria") > 0 Then

' 条件に一致する場合、転記
outputWs.Cells(outputRow, 1).Value = sourceWs.Cells(i, 1).Value
outputWs.Cells(outputRow, 2).Value = sourceWs.Cells(i, 2).Value
outputWs.Cells(outputRow, 3).Value = sourceWs.Cells(i, 3).Value
outputRow = outputRow + 1

End If

Next i

End Sub

【VBA】for next で複数条件の処理方法(For Next×If)

【VBA】比較演算子を用いた複数条件の使用方法

■コード解説

  • 条件の評価
    Ifステートメントを用いて、指定された列が複数の条件を満たすかどうかを評価します。
  • データの転記
    条件に合致したデータをターゲットシートに転記します。各セルから値を取得し、ターゲットシートの対応するセルに値を設定します。

まとめ

Excel VBAを使用した複数条件によるデータ抽出は、特定の要件を満たすデータのみを選択的に取り出すことを可能にします。これにより、データの整理や分析を効率的に行い、高度なデータ処理や自動化を実現できます。

-VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 貼り付け