【VBA】データの最終行を開かずに(外部参照で)配列に格納する方法
日々の業務で大量のデータを扱っている方も多いでしょう。その中でも、特定のシートからデータを取得し、処理を行うことは頻繁に行われます。しかし、毎回Excelを開いてデータをコピーするのは効率が悪いですよね?そこで今回は、VBAを使って指定したシートのデータを配列に格納する方法を紹介します。これにより、開かずに外部参照でデータを取り扱うことが可能になります。
サンプルコード
VBA
Option Explicit
Sub ArrayFromSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("シート名")
'最終行を取得する
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
'配列の初期化
Dim data() As Variant
ReDim data(1 To lastRow - 1, 1 To ws.Columns.Count)
'データを配列に格納する
Dim i As Long
For i = 2 To lastRow
data(i - 1, 1) = ws.Cells(i, "A").Value
data(i - 1, 2) = ws.Cells(i, "B").Value '例:B列のデータも取得する場合
Next i
End Subよくある質問
Q 元に戻せますか?
A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。
Q エラーが出たら?
A.
シート名や列番号が正しいか確認してください。