📘 Excel逆引き事典

【VBA】非表示シートを配列を使って高速にコピーする方法

日々の業務で大量のデータを扱う際、特定の非表示シートを複製したい場合があります。手作業では時間がかかりますが、この記事では配列を使用した高速なVBAマクロを作成し、効率化を図ります。

サンプルコード

VBA
Option Explicit
Sub CopyHiddenSheetToArray()
    Dim ws As Worksheet, targetWs As Worksheet
    Dim dataArr() As Variant
    Dim lastRow As Long
    
    ' 非表示シートの参照
    Set ws = ThisWorkbook.Sheets("HiddenSheet")
    
    ' データ範囲を配列に読み込み
    With ws
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        dataArr = .Range("A1:C" & lastRow)
    End With
    
    ' 新しいシートを作成し、データを貼り付け
    Set targetWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    targetWs.Name = "CopiedSheet"
    targetWs.Range("A1:C" & UBound(dataArr, 1)).Value = dataArr
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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