VBA 0 の表示/非表示:シート全体

0 の表示:シート全体(ビュー設定)

'==============================
' 0 の表示:シート全体(ビュー設定)
'==============================
Public Sub ShowZero_Sheet()
    On Error GoTo EH
    If ActiveSheet Is Nothing Then Exit Sub
    If ActiveSheet.ProtectContents Then
        MsgBox "このシートは保護されています。0の表示設定を変更できません。", vbExclamation
        Exit Sub
    End If
    ActiveWindow.DisplayZeros = True
    Exit Sub
EH:
    MsgBox "0表示設定でエラー:" & Err.Description & "" & Err.Number & "", vbCritical
End Sub

'==============================
' 内部ヘルパー
'==============================
Private Function TryGetRangeSelection(ByRef rngOut As Range) As Boolean
    On Error GoTo EH
    Dim rng As Range
    Set rng = Nothing
    On Error Resume Next
    Set rng = ActiveWindow.RangeSelection
    On Error GoTo EH

    If rng Is Nothing Then
        MsgBox "セル範囲を選択してください。", vbExclamation
        TryGetRangeSelection = False
    Else
        Set rngOut = rng
        TryGetRangeSelection = True
    End If
    Exit Function
EH:
    MsgBox "選択範囲の取得でエラー:" & Err.Description & "" & Err.Number & "", vbCritical
    TryGetRangeSelection = False
End Function

0 の非表示:シート全体(ビュー設定)

'==============================
' 0 の非表示:シート全体(ビュー設定)
'==============================
Public Sub HideZero_Sheet()
    On Error GoTo EH
    If ActiveSheet Is Nothing Then Exit Sub
    If ActiveSheet.ProtectContents Then
        MsgBox "このシートは保護されています。0の表示設定を変更できません。", vbExclamation
        Exit Sub
    End If
    ActiveWindow.DisplayZeros = False
    Exit Sub
EH:
    MsgBox "0非表示設定でエラー:" & Err.Description & "" & Err.Number & "", vbCritical
End Sub

'==============================
' 内部ヘルパー
'==============================
Private Function TryGetRangeSelection(ByRef rngOut As Range) As Boolean
    On Error GoTo EH
    Dim rng As Range
    Set rng = Nothing
    On Error Resume Next
    Set rng = ActiveWindow.RangeSelection
    On Error GoTo EH

    If rng Is Nothing Then
        MsgBox "セル範囲を選択してください。", vbExclamation
        TryGetRangeSelection = False
    Else
        Set rngOut = rng
        TryGetRangeSelection = True
    End If
    Exit Function
EH:
    MsgBox "選択範囲の取得でエラー:" & Err.Description & "" & Err.Number & "", vbCritical
    TryGetRangeSelection = False
End Function

0表示のトグル(表示 / 非表示)

'---------------------------------------------
' 0表示のトグル(表示 / 非表示)
'---------------------------------------------
Public Sub ToggleZeroDisplay_Sheet()
    On Error GoTo EH

    '--- シート存在&保護チェック ---
    If ActiveSheet Is Nothing Then Exit Sub
    If ActiveSheet.ProtectContents Then
        MsgBox "このシートは保護されています。0の表示設定を変更できません。", vbExclamation
        Exit Sub
    End If

    '--- 切り替え実行 ---
    ActiveWindow.DisplayZeros = Not ActiveWindow.DisplayZeros

    '--- 状態表示 ---
    Dim msg As String
    msg = IIf(ActiveWindow.DisplayZeros, "0を表示しました。", "0を非表示にしました。")
    Application.StatusBar = msg
    DoEvents
    Application.StatusBar = False
    Exit Sub

EH:
    MsgBox "0表示切替でエラー:" & Err.Description & "" & Err.Number & "", vbCritical
End Sub

コメント