📘 Excel逆引き事典

【VBA】非表示シートを安全に置換する方法

日々の業務で大量のデータを扱う場合、非表示にしたシートを別のシートと交換したいことはよくあります。しかし、この操作は手作業では時間がかかるだけでなく、ミスが発生しやすいです。そこで、VBAを使用して効率的に非表示シートを置き換え、エラー処理も含めて安全に実行する方法を紹介します。

サンプルコード

VBA
Option Explicit
Sub ReplaceHiddenSheet()
    Dim ws As Worksheet, targetWs As Worksheet
    Dim sheetName As String
    
    ' 非表示シートの名前を指定
    sheetName = "HiddenSheet"
    
    On Error GoTo ErrorHandler
    Set ws = ThisWorkbook.Sheets(sheetName)
    If Not ws Is Nothing Then
        Application.ScreenUpdating = False
        For Each targetWs In ThisWorkbook.Sheets
            If targetWs.Name <> sheetName Then
                ' 非表示シートを他のシートと置き換える処理
                With ws
                    .Move Before:=targetWs
                    .Visible = xlSheetHidden
                End With
            End If
        Next targetWs
    Else
        MsgBox "指定したシート名が存在しません。", vbExclamation, "エラー"
    End If
    
ExitHere:
    Application.ScreenUpdating = True
    Exit Sub
ErrorHandler:
    MsgBox Err.Description, vbCritical, "エラーハンドリング"
    Resume ExitHere
End Sub

よくある質問

Q 元に戻せますか?

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

Q エラーが出たら?

A.
シート名や列番号が正しいか確認してください。それでも問題がある場合は、エラーメッセージの内容を元に修正を行ってください。