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

【VBA】セルの値を変数配列に取得:ループ処理

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】範囲指定のセルの値:配列を変数に格納

まとめ

セルの値を配列に格納することで、VBA内でのデータ操作が格段に簡単かつ効率的になります。直接読み込みは速度が速い一方で、ループ処理を使用した方法はデータの前処理や条件付きの操作に柔軟に対応できます。

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