Home » エクセルマクロ・Excel VBAの使い方 » 行・列を表す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

▼2017年6月10日にオブジェクトブラウザーの使い方とともに、VBAのオブジェクト式の文法・オブジェクト変数等についてとことん解説するセミナー『Excel VBA講座 オブジェクト式解説編』を開催します。
オブジェクト式解説編

Home » エクセルマクロ・Excel VBAの使い方 » 行・列を表すRange » 全てのシートの行を非表示にするExcelマクロ

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

Home » エクセルマクロ・Excel VBAの使い方 » 行・列を表すRange » 全てのシートの行を非表示にするExcelマクロ

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

検索

最近じっくりと読まれている記事

.