📘 Excel逆引き事典

【VBA】非表示シートをバックグラウンドでコピーする方法

手作業で非表示のワークシートを複製するのは面倒です。この記事では、VBAを使用して非表示シートをバックグラウンドで素早くコピーする方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub CopyHiddenSheet()
    Dim ws As Worksheet, newWs As Worksheet
    Application.ScreenUpdating = False '画面更新の停止

    Set ws = ThisWorkbook.Sheets("シート1") 'コピー元の非表示シート名を指定
    If Not ws Is Nothing Then '存在確認
        ws.Visible = xlSheetVisible '一時的に可視化
        Set newWs = Sheets.Add(Before:=ws) '新しいシートを作成
        newWs.Name = "コピーされたシート1" '新規シート名を設定
        newWs.Move Before:=ws '新規シートを元のシートの前に移動
        ws.Visible = xlSheetHidden '再度非表示化
    End If
    Application.ScreenUpdating = True '画面更新の再開
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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