Excel VBAを使用して、特定の条件を満たすデータを抽出するプロセスは、データ管理と分析において非常に重要です。以下のステップとVBAコードスニペットを通じて、基本的な構文を学びながら実践的な方法を説明します。
Excel VBAで条件に合うデータを抽出する方法
1: ワークシートの設定
データを抽出する元となるワークシートとデータを出力するワークシートを設定します。
Sub ExtractDataBasedOnCondition()
Dim sourceWs As Worksheet
Set sourceWs = ThisWorkbook.Sheets("DataSheet")
Dim outputWs As Worksheet
Set outputWs = ThisWorkbook.Sheets("OutputSheet")
2: 最終行の特定と出力行の設定
データが存在する範囲を確認し、データの抽出開始行と出力開始行を設定します。【VBA】Rowsの基本的な使用方法・複数行を指定(数字・変数)・最終行取得
Dim lastRow As Long
lastRow = sourceWs.Cells(sourceWs.Rows.Count, "A").End(xlUp).Row
Dim outputRow As Long
outputRow = 1 ' 出力シートの開始行番号
3: 条件に基づくデータ抽出と転記
指定した条件に基づいてデータを抽出し、条件を満たすデータを別のシートに転記します。
Dim i As Long
For i = 1 To lastRow
' 条件の例: 第二列の値が10以上である場合
If sourceWs.Cells(i, 2).Value >= 10 Then
outputWs.Cells(outputRow, 1).Value = sourceWs.Cells(i, 1).Value
outputWs.Cells(outputRow, 2).Value = sourceWs.Cells(i, 2).Value
outputRow = outputRow + 1 ' 出力行を更新
End If
Next i
End Sub
■コード解説
- 条件チェック
Ifステートメントを使用して、各行の特定のセル(例えば2列目)が条件(この場合は10以上)に合致するかを評価します。 - データ転記
条件に合致する場合、その行のデータをoutputWsに指定された行に転記します。ここでは1列目と2列目のデータを出力シートの対応する行と列にコピーしています。 - 行の更新
outputRow = outputRow + 1は出力データの行を次の空行に移動させます。
まとめ
Excel VBAを使用して効率的に条件に合うデータを抽出し、整理することができます。このスキルは、データのフィルタリング、整理、分析に役立ち、多くの業務プロセスを自動化するために活用できます。