Excel VBAを使用して、ワークシートのセルからデータを取得し、配列に格納する方法は、データ分析や後処理での操作を高速化するために非常に便利です。セルの値を配列に直接読み込む方法と、ループ処理を使用して配列に値を格納する方法を説明します。
配列にセルの値を直接読み込む方法
Excelの範囲を直接配列に読み込む最も簡単な方法は、Range.Valueプロパティを使用することです。この方法は、特に大きなデータセットを扱う際に効率的です。
Sub LoadDataDirectly()
Dim dataArray As Variant
dataArray = ThisWorkbook.Sheets("Sheet1").Range("A1:C10").Value
End Sub
このサンプルコードでは、"Sheet1"のA1からC10までの範囲をdataArray配列に読み込んでいます。
配列にセルの値を読み込む際にRange.Valueを使用すると、読み込まれるセル範囲が何行何列であるかに応じて、配列のサイズが自動的に決定されます。【VBA】For文:配列の使用方法
ループ処理を使用して配列に値を格納する方法
特定の条件に基づいてデータをフィルタリングするなど、より柔軟なデータ処理が必要な場合は、ループ処理を使用してデータを一つずつ配列に格納する方法が適しています。
Sub LoadDataViaLoop()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Dim dataArray() As Variant
ReDim dataArray(1 To lastRow)
Dim i As Integer
For i = 1 To lastRow
dataArray(i) = ws.Cells(i, 1).Value
Next i
End Sub
■コード解説
- ワークシートの設定と行数の取得
処理するワークシートをws変数に設定し、列Aでデータが入力されている最後の行をlastRowに格納します。 - 配列の初期化
ReDim dataArray(1 To lastRow)を使用して、必要なサイズの配列を動的に宣言します。 - Forループでのデータの格納
For i = 1 To lastRowループを使用して、各セルの値を配列dataArrayに格納します。
まとめ
セルの値を配列に格納することで、VBA内でのデータ操作が格段に簡単かつ効率的になります。直接読み込みは速度が速い一方で、ループ処理を使用した方法はデータの前処理や条件付きの操作に柔軟に対応できます。