📘 Excel逆引き事典

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

手作業での大量データ処理は労力がかかりますが、VBAを使えば非表示のシートを簡単にバックグラウンドで置き換えることができます。この記事では、高速化と画面更新停止機能も備えたマクロを作成します。

サンプルコード

VBA
Option Explicit
Sub ReplaceHiddenSheet()
    Dim ws As Worksheet, newWs As Worksheet
    Dim sheetName As String
    
    ' 非表示のシート名を指定
    sheetName = "HiddenSheet"
    
    ' バックグラウンド処理開始
    Application.ScreenUpdating = False
    
    ' シートが存在するか確認
    On Error Resume Next
    Set ws = ThisWorkbook.Sheets(sheetName)
    If ws Is Nothing Then Exit Sub
    On Error GoTo 0
    
    ' 新しいシートを作成
    Set newWs = ThisWorkbook.Worksheets.Add
    newWs.Name = sheetName
    
    ' 非表示のシートを削除
    Application.DisplayAlerts = False
    ws.Delete
    Application.DisplayAlerts = True
    
    ' バックグラウンド処理終了
    Application.ScreenUpdating = True
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

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