Excel VBAを使用して別のシートからデータを取得する際、特定のシート範囲をループ処理で読み取ることが多くのアプリケーションで求められます。別のシートからデータを効率的に取得する方法を説明します。
別シートの値をループ処理で取得する方法
1:ワークシートオブジェクトの設定
データを取得したいシートを正確に指定します。
Sub RetrieveDataFromAnotherSheet()
Dim sourceSheet As Worksheet
Set sourceSheet = ThisWorkbook.Sheets("SourceSheet")
sourceSheet変数を使用して、データの読み取り元となるシート(この例では"SourceSheet"と名付けられたシート)を設定しています。
2:データの範囲と最終行の特定
データが存在する範囲と、読み取りを開始および終了する行を特定します。
Dim lastRow As Long
lastRow = sourceSheet.Cells(sourceSheet.Rows.Count, 1).End(xlUp).Row
sourceSheet.Rows.Countはシートの最後の行番号を返し、End(xlUp)は指定された列(この例では1列目)から上に向かって最初の非空白セルを見つけ、その行番号をlastRowに格納します。【VBA】For文:空白行まで繰り返す処理方法
3:ループ処理でのデータ取得
データを格納するための変数を宣言し、ループ処理で各行のデータを取得します。
Dim i As Long
For i = 1 To lastRow
Debug.Print sourceSheet.Cells(i, 1).Value ' 例として1列目のデータを出力
Next i
End Sub
このループは1行目からlastRowまでのデータを読み取り、イミディエイトウィンドウに各行の値を表示します。
この例では1列目のデータを取得していますが、必要に応じて他の列からのデータ取得も同様の方法で行えます。
まとめ
別のシートからデータを取得する際、VBAのループ処理はデータ分析やレポート作成など多岐にわたる作業を自動化するのに非常に有効です。
この方法をマスターすることで、複数のデータソースを扱う際の柔軟性と効率が向上します。