Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » すべての行を表示するExcelマクロ

すべての行を表示するExcelマクロ

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba 非表示行を一斉表示」
「エクセルマクロ 非表示行の表示」
といった検索で、このサイト・インストラクターへのネタ帳のアクセスがありました。

ワークシート上の非表示に設定されている行をすべて再表示するには、Excel VBA(Visual Basic for Applications)で、どのようなコードを書けばいいのかを探していた方による検索です。

[スポンサードリンク]

アクティブシートの行をすべて表示するサンプルマクロ

以下のような1行のマクロで、アクティブなワークシート上の行がすべて表示されます。


Sub すべての行を表示する_アクティブシート()
 Rows.Hidden = False
End Sub

行全体を表すRangeオブジェクトのHiddenプロパティを、Falseに設定すれば行が表示されます。

「非表示になっていた場合に再表示する」
のような、If文を考えてしまう方もいらっしゃるかもしれませんが、有無を言わさず全部表示すればいいのでIf文は不要です。

行全体を表すRangeオブジェクトを取得するオブジェクト式はいくつかありますが、ここではシンプルなコードになるRowsプロパティを利用しています。

Rowsプロパティに引数を指定しなければ、すべての行を表すRangeオブジェクトが取得できます。
なお、Rowsプロパティは、グローバルメンバーですから上位のオブジェクト式を省略しています。

RowsではなくCells.EntireRowを使う場合

上記のSubプロシージャでは、行全体を表すRangeオブジェクトを返すRowsプロパティを使って
  Rows.Hidden = False
としていますが、Cellsプロパティを使って、
   Cells.EntireRow.Hidden = False
としても同じです。

Cellsプロパティに引数を指定しない場合は、すべてのセルを表すRangeオブジェクトが取得できます。

Range.Hiddenプロパティは、行全体や列全体を表すRangeオブジェクトでのみ使えるプロパティですから、行全体を表すRangeオブジェクトを返すEntireRowプロパティを組み合わせたオブジェクト式にしています。

すべてのシートのすべての行を表示するサンプルマクロ

アクティブなブックの、すべてのワークシートの行を、すべて表示するなら以下のようなマクロです。


Sub すべての行を表示する_アクティブブック()
 Dim sh As Worksheet

 For Each sh In Worksheets
  sh.Rows.Hidden = False
 Next sh
End Sub

アクティブブックの全ワークシートに対してFor each~Nextループを回して、
  For Each sh In Worksheets

個々のシートで先のマクロと同じ方法で、すべての行の表示を行っています。
   sh.Rows.Hidden = False

すべての行を表示するオブジェクト式は、CellsプロパティとEntireRowプロパティを使って、
   sh.Cells.EntireRow.Hidden = False
としてもOKです。

For~Nextループを使って全シートのすべての行を表示するサンプルマクロ

同じことをFor Each~Nextループではなく、For~Nextループでももちろんできます。


Sub すべての行を表示する_アクティブブック_For()
 Dim i As Long

 With Worksheets
  For i = 1 To .Count
   .Item(i).Rows.Hidden = False
  Next i
 End With
End Sub

上記のSubプロシージャの、
  With Worksheets
   For i = 1 To .Count
    .Item(i).Rows.Hidden = False
   Next i
  End With
は、Withステートメントを使わずに、
  For i = 1 To Worksheets.Count
   Worksheets(i).Rows.Hidden = False
  Next i
と書いてもOKです。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » すべての行を表示するExcelマクロ

TrackBack:0

TrackBack URL

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » すべての行を表示するExcelマクロ

「行・列を表すRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.