Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 全てのシートの行を非表示にするExcelマクロ

全てのシートの行を非表示にするExcelマクロ

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

「vba すべてのシート 行の非表示」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

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

参考になりそうなマクロをいくつかご紹介しておきます。

[スポンサードリンク]

全シートで特定の1行を非表示にするサンプルマクロ

以下のようなSubプロシージャで、全シートの1行目を非表示にできます。

Sub 全シートで行を非表示に_1行()
 Dim sh As Worksheet

 For Each sh In Worksheets
  sh.Rows(1).Hidden = True
 Next sh
End Sub

すべてのワークシートに対してFor Each~Nextループを回して、
  For Each sh In Worksheets

Rowsプロパティを使って1行目を非表示にしています。
   sh.Rows(1).Hidden = True

全シートで連続した複数行を非表示にするサンプルマクロ

以下のようなSubプロシージャで、全シートの1~3行目を非表示にできます。

Sub 全シートで行を非表示に_連続した複数行()
 Dim sh As Worksheet

 For Each sh In Worksheets
  sh.Rows("1:3").Hidden = True
 Next sh
End Sub

先ほどの1行目を非表示にするマクロとの違いは、「Rows("1:3")」と、Rowsプロパティの引数に文字列「1:3」を指定して1行目から3行目を取得しているところです。

全シートで離れた複数行を非表示にするサンプルマクロ

以下のようなSubプロシージャで、全シートの1・3・7~10行目を非表示にできます。

Sub 全シートで行を非表示に_離れた複数行()
 Dim sh As Worksheet

 For Each sh In Worksheets
  sh.Range("A1, A3, A7:A10").EntireRow.Hidden = True
 Next sh
End Sub

離れた複数行を、指定するために「Range("A1, A3, A7:A10").EntireRow」と、RangeプロパティとEntireRowプロパティを組み合わせたオブジェクト式にしているのがポイントです。

RangeプロパティとEntireRowプロパティの組み合わせに慣れていない方は、以下のSubプロシージャを動かして、全シートの1・3・7~10行目が選択されることを確認しておきましょう。
Sub samp()
 Range("A1, A3, A7:A10").EntireRow.Select
End Sub

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » 行・列を表すRange » 全てのシートの行を非表示にするExcelマクロ

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

検索


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

.