Excel VBA 逆引き集 | 非表示行を可視化

Excel VBA
スポンサーリンク

非表示行を可視化(再表示)

Excelで「非表示にした行をもう一度見えるようにする」には、Hidden プロパティを False に戻すのが基本です。初心者が混乱しやすい「全部まとめて再表示」「選択範囲だけ」「条件付きで再表示」などを例題付きで整理しました。


基本:行を再表示する

Sub UnhideRow_Basic()
    '3行目を再表示
    Rows(3).Hidden = False

    '2〜5行をまとめて再表示
    Rows("2:5").Hidden = False
End Sub
VB
  • ポイント:
    • 非表示は Hidden = True、再表示は Hidden = False
    • 複数行を範囲指定すれば一括で再表示できます。

シート全体の非表示行を一括で再表示

Sub UnhideRow_All()
    Rows.Hidden = False
End Sub
VB
  • ポイント:
    • シート内のすべての行を一度に再表示。
    • 「どこを隠したか分からない」ときに便利。

選択範囲の行だけ再表示

Sub UnhideRow_Selection()
    If TypeName(Selection) = "Range" Then
        Selection.EntireRow.Hidden = False
    End If
End Sub
VB
  • ポイント:
    • 選択したセル範囲の行だけを再表示。
    • EntireRow を付けることで「セル単位」ではなく「行単位」で処理。

条件付きで再表示(例:ステータス列が「完了」の行)

Sub UnhideRow_ByCondition()
    Dim last As Long, r As Long
    last = Cells(Rows.Count, "F").End(xlUp).Row

    For r = 2 To last
        If Cells(r, "F").Value = "完了" Then
            Rows(r).Hidden = False
        End If
    Next
End Sub
VB
  • ポイント:
    • 条件に合う行だけを再表示。
    • 非表示状態かどうかに関係なく、Hidden=False を設定すれば見えるようになります。

例題で練習

例題1:見出し以外を全部非表示→再表示

Sub Example_UnhideAllExceptHeader()
    'まず非表示
    Dim last As Long
    last = Cells(Rows.Count, "A").End(xlUp).Row
    Rows("2:" & last).Hidden = True

    '再表示
    Rows.Hidden = False
End Sub
VB

例題2:選択範囲の行を「トグル」(非表示⇔再表示)

Sub Example_ToggleSelection()
    If TypeName(Selection) = "Range" Then
        With Selection.EntireRow
            .Hidden = Not .Hidden
        End With
    End If
End Sub
VB

例題3:フィルタで表示されている行を一度非表示→再表示

Sub Example_UnhideVisibleRows()
    Dim vis As Range
    On Error Resume Next
    Set vis = Range("A2:A200").SpecialCells(xlCellTypeVisible)
    On Error GoTo 0
    If Not vis Is Nothing Then
        vis.EntireRow.Hidden = False
    End If
End Sub
VB

実務の落とし穴と対策

  • 非表示とフィルタの違い:
    • Hidden は「手動で隠す」、フィルタは「条件で表示/非表示」。両者は別物。フィルタで隠れた行は Hidden=False では表示されません。
  • 解除忘れ:
    • 一括解除は Rows.Hidden = False が最短。
  • 大量処理で遅い:
    • 1行ずつループすると遅い。まとめて範囲指定して Hidden=False にすると高速。
  • 結合セル:
    • 結合がある行は非表示/再表示でレイアウトが崩れることがある。結合は最小限に。
タイトルとURLをコピーしました