📊 Excel VBA Top100
📋

HideSheet

シート管理

指定したシートを非表示にする

🎬 デモGIF準備中

📖 使い方

  1. VBAエディタを開く(Alt + F11)
  2. モジュールを挿入(挿入 > モジュール)
  3. 下記VBAコードをコピー&ペースト
  4. ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行すると非表示にするシート名を入力するダイアログが表示される

💻 VBAコード

' HideSheet
' -----------------
' Macro Name: HideSheet
' Description: 指定したシートを非表示にする
' Parameters: なし
' Returns: なし
' Usage: 実行すると非表示にするシート名を入力するダイアログが表示される
' -----------------

Sub HideSheet()
    Dim ws As Worksheet
    Dim sheetName As String
    Dim visibleCount As Long
    Dim i As Long

    On Error GoTo ErrorHandler

    visibleCount = 0
    For i = 1 To Worksheets.Count
        If Worksheets(i).Visible = True Then
            visibleCount = visibleCount + 1
        End If
    Next i

    If visibleCount <= 1 Then
        MsgBox "最後の表示中のシートは非表示にできません。", vbExclamation
        Exit Sub
    End If

    sheetName = InputBox("非表示にするシート名を入力:", "シート非表示", ActiveSheet.Name)

    If sheetName = "" Then
        Exit Sub
    End If

    On Error Resume Next
    Set ws = Worksheets(sheetName)
    On Error GoTo ErrorHandler

    If ws Is Nothing Then
        MsgBox "「" & sheetName & "」は存在しません。", vbExclamation
        Exit Sub
    End If

    If ws.Visible = xlSheetVisible Then
        visibleCount = 0
        For i = 1 To Worksheets.Count
            If Worksheets(i).Visible = True And i <> ws.Index Then
                visibleCount = visibleCount + 1
            End If
        Next i
        If visibleCount = 0 Then
            MsgBox "このシートを非表示にすると表示中のシートがなくなります。", vbExclamation
            Exit Sub
        End If
        ws.Visible = xlSheetHidden
        MsgBox "「" & sheetName & "」を非表示にしました。", vbInformation
    Else
        MsgBox "「" & sheetName & "」は既に非表示です。", vbInformation
    End If
    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub