エクセル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