Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » アクティブセルから下の行を非表示にするExcelマクロ

アクティブセルから下の行を非表示にするExcelマクロ

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

「VBAでアクティブセルから下の行を非表示にしたい」
という検索が、このサイト・インストラクターのネタ帳で行われていました。

[スポンサードリンク]

アクティブセルから下の行を非表示にするサンプルマクロ

以下のような1行マクロで、アクティブなセルから下の行を非表示にできます。
Sub アクティブセルから下の行を非表示に()
 Range(ActiveCell, Cells(Rows.Count, "A")).EntireRow.Hidden = True
End Sub

サンプルマクロで利用しているオブジェクト式について

一番深いカッコの中から意味を理解しましょう。
  Range(ActiveCell, Cells(Rows.Count, "A")).EntireRow.Hidden = True
Rows.Countというオブジェクト式で、アクティブなワークシートの行(Rows)の数(.Count)を取得できます。
2007形式のブックなら「1,048,576」です。

ですから、
  Range(ActiveCell, Cells(Rows.Count, "A")).EntireRow.Hidden = True
の、Cells(Rows.Count, "A")は、Cells(1048576, "A")という意味で、A1048576セルを表すRangeオブジェクトを返します。

Rangeプロパティは引数を2つ指定した場合、その範囲の全セルを表すRangeオブジェクトを返しますから、
  Range(ActiveCell, Cells(Rows.Count, "A")).EntireRow.Hidden = True
の、Range(ActiveCell, Cells(Rows.Count, "A"))というオブジェクト式は、アクティブセルからA1048576セルのセル範囲を表すRangeオブジェクトを返します。

行の表示・非表示を取得・設定するRange.Hiddenプロパティは、行全体を表すRangeオブジェクトで有効ですから、
  Range(ActiveCell, Cells(Rows.Count, "A")).EntireRow.Hidden = True
と、RangeオブジェクトのEntireRowプロパティを使って、アクティブセルからA1048576セルの行全体を表すRangeオブジェクトを取得しています。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » 行・列を表すRange » アクティブセルから下の行を非表示にするExcelマクロ

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

検索


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

.