Excel VBAを利用して、一つのシートから別のシートへデータを抽出して転記するプロセスは、データの整理やレポート作成に非常に役立ちます。以下のステップに従って、データを効率的に移動させる方法を説明します。
Excel VBAで別シートのデータを抽出して転記する方法
1: ワークシートの設定
データを抽出する元のシートと、データを転記する先のシートを設定します。
Sub ExtractAndTransferData()
Dim sourceWs As Worksheet
Set sourceWs = ThisWorkbook.Sheets("SourceSheet")
Dim targetWs As Worksheet
Set targetWs = ThisWorkbook.Sheets("TargetSheet")
2: データ範囲と最終行の特定
データが存在する範囲を確認し、その範囲を基にデータを抽出します。【VBA】Rowsの基本的な使用方法・複数行を指定(数字・変数)・最終行取得
Dim lastRow As Long
lastRow = sourceWs.Cells(sourceWs.Rows.Count, "A").End(xlUp).Row
Dim outputRow As Long
outputRow = 1 ' 転記先シートの開始行
3: 条件に基づくデータの抽出と転記
条件に基づいてデータを抽出し、転記先のシートにデータを転記します。
・A列に”Criteria”という文字があること
Dim i As Long
For i = 1 To lastRow
' 条件例: 第一列の値が特定の条件を満たす場合
If sourceWs.Cells(i, 1).Value = "Criteria" Then
' 条件に一致する場合、転記
targetWs.Cells(outputRow, 1).Value = sourceWs.Cells(i, 1).Value
targetWs.Cells(outputRow, 2).Value = sourceWs.Cells(i, 2).Value
targetWs.Cells(outputRow, 3).Value = sourceWs.Cells(i, 3).Value
outputRow = outputRow + 1
End If
Next i
End Sub
■コード解説
- データ範囲の特定
最後のデータ行を特定して、適切な範囲内でデータを処理します。 - 条件に基づくデータ抽出
Ifステートメントを用いて条件を評価し、条件に合致するデータのみを選択します。 - データの転記
条件に合致したデータをターゲットシートの指定した行に転記します。各セルから値を取得し、ターゲットシートの対応するセルに値を設定します。
まとめ
この方法を使用することで、複数のシートに分散しているデータを集中的に管理し、必要に応じて選択的にデータを移動させることが可能になります。これにより、データの整理やアクセスが効率化され、報告や分析作業が大幅に簡易化されます。