📋
UnhideAllSheets
シート管理すべての非表示シートを表示する
ブック内の非表示シートをすべてVBAで再表示するマクロです。Worksheetsコレクションをループして各シートのVisibleプロパティをxlSheetVisibleに変更します。xlSheetVeryHiddenで隠されたシートもVBAで同様に再表示できます。非表示シートの棚卸しや、保護解除後の全シート確認作業などに使用します。再表示後にシート名一覧を出力する処理と組み合わせるとより便利です。内部ではWorksheetsコレクションをループしながらVisibleプロパティをxlSheetVisibleに統一しており、xlSheetHiddenとxlSheetVeryHiddenの両方に対応できる点がExcel標準の「再表示」メニュー操作より優れています。HideSheetで隠した設定シートの棚卸しや、担当者交代時の引き継ぎ確認など、定期的な健全性チェックの一環として活用されます。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行すると非表示になっているすべてのシートが表示されます
🎯 活用シーン
- ✓監査や引継ぎ時にファイル内の隠しシートをすべて公開して確認
- ✓VeryHiddenで保護していた設定シートをメンテナンス時に一時解除
- ✓非表示シートの存在を確認してから再整理を行うための前処理
- ✓退職・異動による引き継ぎ時に、隠されていた全シートを可視化して業務内容を正確に把握したいとき
- ✓セキュリティ監査でファイル内の隠しシートの有無を確認するために、一時的にすべて再表示したいとき
💡 実装のヒント
- ▸xlSheetVeryHiddenのシートもVisible = xlSheetVisibleで再表示できます
- ▸ループ前にシート数を記録しておくと再表示数の確認に使えます
- ▸シートが保護されている場合は先にブック保護の解除が必要です
- ▸再表示したシートの一覧をListAllSheetsで出力しておくと、どのシートが隠されていたかの記録が残せます。
- ▸保護されたブック構造(Workbook.Protectで保護)の場合は、先にブック保護を解除しないとシート表示状態を変更できません。
💻 VBAコード
' UnhideAllSheets
' -----------------
' Macro Name: UnhideAllSheets
' Description: すべての非表示シートを表示する
' Parameters: なし
' Returns: なし
' Usage: 実行すると非表示になっているすべてのシートが表示されます
' -----------------
Sub UnhideAllSheets()
Dim ws As Worksheet
Dim hiddenCount As Long
Dim i As Long
On Error GoTo ErrorHandler
hiddenCount = 0
For Each ws In Worksheets
If ws.Visible = xlSheetHidden Then
hiddenCount = hiddenCount + 1
End If
Next ws
If hiddenCount = 0 Then
MsgBox "非表示のシートはありません。", vbInformation
Exit Sub
End If
For Each ws In Worksheets
If ws.Visible = xlSheetHidden Then
ws.Visible = xlSheetVisible
End If
Next ws
MsgBox hiddenCount & "枚のシートを表示しました。", vbInformation
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub