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

【VBA】条件に合うデータを抽出:For文・IF文

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

【VBA】文字列の部分一致(IF文)

【VBA】文字列の完全一致の処理(IF文)

■コード解説

  • 条件チェック
    Ifステートメントを使用して、各行の特定のセル(例えば2列目)が条件(この場合は10以上)に合致するかを評価します。
  • データ転記
    条件に合致する場合、その行のデータをoutputWsに指定された行に転記します。ここでは1列目と2列目のデータを出力シートの対応する行と列にコピーしています。
  • 行の更新
    outputRow = outputRow + 1は出力データの行を次の空行に移動させます。

まとめ

Excel VBAを使用して効率的に条件に合うデータを抽出し、整理することができます。このスキルは、データのフィルタリング、整理、分析に役立ち、多くの業務プロセスを自動化するために活用できます。

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