📘 Excel逆引き事典

【VBA】特定の名前のシートを高速に配列に格納する方法

手作業で大量のデータを移動するのは大変です。このマクロを使えば、特定の名前のシートを高速に配列に格納し、効率的に業務を進めることができます。

サンプルコード

VBA
Option Explicit
Sub SheetToArray()
    Dim ws As Worksheet, lastRow As Long, i As Integer
    Dim sheetName As String
    Dim arr() As Variant
    
    ' シート名の指定(ここでは「Sheet1」を例として使用)
    sheetName = "Sheet1"
    Set ws = ThisWorkbook.Sheets(sheetName)
    
    ' 画面更新停止
    Application.ScreenUpdating = False
    
    ' 最終行取得
    lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    
    ' 配列の初期化(必要な範囲を指定)
    ReDim arr(1 To lastRow)
    
    ' データ格納処理
    For i = 1 To lastRow
        arr(i) = ws.Cells(i, 1).Value
    Next i
    
    ' 処理終了後、画面更新を再開
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

A.
VBAの実行結果は「元に戻す」が効きません。必ずバックアップを取ってから実行してください。

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。