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

【VBA】範囲指定のセルの値:配列を変数に格納

Excel VBAを使用して、特定の列範囲(この例ではA列からC列)のデータを最終行まで読み込んで配列に格納する方法は、大量のデータを効率的に処理するために役立ちます。以下にその手順を示します。

A列からC列の最終行までのデータを配列に格納する方法

1: ワークシートと範囲の設定

処理するワークシートを指定し、データが存在する範囲を特定します。

Sub StoreDataInArray()

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")

' A列からC列の最終行を特定
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

2: 配列の初期化

取得するデータに合わせて配列を初期化します。
この場合、配列は二次元となります。

' 配列を初期化(行数:lastRow、列数:3)
Dim dataArray() As Variant
ReDim dataArray(1 To lastRow, 1 To 3)

3: ループ処理でのデータ格納

Forループを使用して、各セルのデータを配列に格納します。

Dim i As Long
For i = 1 To lastRow

dataArray(i, 1) = ws.Cells(i, 1).Value ' A列の値
dataArray(i, 2) = ws.Cells(i, 2).Value ' B列の値
dataArray(i, 3) = ws.Cells(i, 3).Value ' C列の値

Next i

End Sub

■コード解説

  • 最終行の取得
    ws.Cells(ws.Rows.Count, "A").End(xlUp).Rowを使用して、A列で最後にデータが存在する行を取得します。これにより、どこまでデータが存在するかを特定します。
  • 配列の初期化
    ReDim dataArray(1 To lastRow, 1 To 3)で、必要な行数と3列分のスペースを持つ配列を動的に宣言します。
  • データの格納
    Forループを使用して、指定した列の各行からデータを読み取り、配列に格納します。このとき、ws.Cells(i, 列番号).Valueを用いて各セルの値を取得し、配列の対応する位置に代入します。【VBA】For文:配列の使用方法

まとめ

この方法を使用することで、Excelシートの特定の列範囲からデータを効率的に配列に読み込むことができます。これにより、後の処理やデータの分析が容易になり、プログラムのパフォーマンスも向上します。配列にデータを格納することで、一度に大量のデータ操作が可能となり、複雑なデータ処理タスクを効率的に実行できるようになります。

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