【VBA】すべての行・列の非表示を解除する | あじゅWeb

【VBA】すべての行・列の非表示を解除する

エクセルVBAで使うコードの備忘録。VBAでワークシート内のすべての非表示になっている行・列を再表示するコードです。

スポンサーリンク

全ての行の非表示を解除する

各々の行(横方向)の表示・非表示を切り替えるには行全体を表すオブジェクトに対してHiddenプロパティの値(True, False)を切り替えればOKでした(詳細はこちら)。すべての行のHiddenプロパティをFalseに設定してやれば、ワークシート内のすべての行の非表示を解除することができます。全ての行を表すオブジェクトは、Rows(引数なし)かCells.EntireRowを使えば取得できます。Cellsは引数なしで使用するとワークシートのセル全体を取得できます。これのEntireRowプロパティにアクセスすることでワークシートの行全体を取得しています。

サンプルコード(全ての行の非表示を解除する)

Public Sub UnhideAllRows()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 全ての行を再表示する(Rowsを使うケース) ---'
    ws.Rows.Hidden = False
    
    '--- 全ての行を再表示する(Cells.EntireRowを使うケース) ---'
    ws.Cells.EntireRow.Hidden = False
    
End Sub

全ての列の非表示を解除する

列の非表示も考え方は全く同じです。

各々の列(縦方向)の表示・非表示を切り替えるには列全体を表すオブジェクトに対してHiddenプロパティの値(True, False)を切り替えればOKでした(詳細はこちら)。すべての列のHiddenプロパティをFalseに設定してやれば、ワークシート内のすべての列の非表示を解除することができます。全ての列を表すオブジェクトは、Columns(引数なし)かCells.EntireColumnを使えば取得できます。Cellsは引数なしで使用するとワークシートのセル全体を取得できます。これのEntireColumnプロパティにアクセスすることでワークシートの列全体を取得しています。

なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

サンプルコード(全ての列の非表示を解除する)

Public Sub UnhideAllColumns()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 全ての列を再表示する(Columnsを使うケース) ---'
    ws.Columns.Hidden = False
    
    '--- 全ての列を再表示する(Cells.EntireColumnを使うケース) ---'
    ws.Cells.EntireColumn.Hidden = False
    
End Sub

全ワークシートに対して実行する場合

最後に非表示の解除を全てのワークシートに対して実行するサンプルコードをご紹介します。対して難しいものではありません。ワークブックに含まれるワークシート全体に対してループしてやるだけです。

サンプルコード(全ワークシートの非表示行・列を解除する)

Public Sub HideAllRowsColumns()
    
    '--- ワークシートの数 ---'
    Dim n As Long
    n = ThisWorkbook.Worksheets.Count
    
    '--- ループ用変数 ---'
    Dim i As Long
    For i = 0 To n
        
        '--- 全行を再表示 ---'
        ThisWorkbook.Worksheets.Item(i).Rows.Hidden = False
        
        '--- 全列を再表示 ---'
        ThisWorkbook.Worksheets.Item(i).Columns.Hidden = False
        
    Next i
    
End Sub