Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視行だけを選択する

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

フィルター後の見えているセル・可視セルだけを選択するExcel VBAのコードをご紹介しました。

似たようなことで、
「vba 可視行の選択」
という検索キーワードでのアクセスもあります。

ご紹介済みの可視セルの選択は下図のようになりますが、

VBAで可視行だけを選択する

「vba 可視行の選択」ですから、下図のような選択状態にするには、

VBAで可視行だけを選択する

どのようなコードを書けばいいのか探していらしたのでしょうか。

[スポンサードリンク]

可視行だけを選択するサンプルマクロ

以下のSubプロシージャを実行すると、可視行だけを選択できます。
Sub 可視行のみ選択する()
 Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).EntireRow.Select
End Sub

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

上記プロシージャで利用しているオブジェクト式のうち、
  Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
の部分は、ご紹介済みの可視セル選択のオブジェクト式とまったく同じです。

このオブジェクト式に、行全体を取得するプロパティ「.EntireRow」をつなげているのが
  Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).EntireRow
です。

オブジェクト変数を使って可視行だけを選択するサンプルマクロ

オブジェクト式、
  Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).EntireRow
で使われている、
  Rangeプロパティ
  Range.CurrentRegionプロパティ
  Range.SpecialCellsメソッド
  Range.EntireRowプロパティ
の、どれもがRangeオブジェクトを返すということを理解できていない方は、以下のSubプロシージャを[F8]キーでステップ実行して意味を考えてみることが、参考になるかもしれません。
Sub 可視行のみ選択する_オブジェクト変数利用()
 Dim rng As Range
 
 Set rng = Range("A1")
 rng.Select
 
 Set rng = rng.CurrentRegion
 rng.Select
 
 Set rng = rng.SpecialCells(xlCellTypeVisible)
 rng.Select
 
 Set rng = rng.EntireRow
 rng.Select
End Sub

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視行だけを選択する

「SpecialCellsメソッド」の記事一覧

検索


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

.