対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016
フィルター後の見えているセル・可視セルだけを選択するExcel VBAのコードをご紹介しました。
似たようなことで、
「vba 可視行の選択」
という検索キーワードでのアクセスもあります。
ご紹介済みの可視セルの選択は下図のようになりますが、
「vba 可視行の選択」ですから、下図のような選択状態にするには、
どのようなコードを書けばいいのか探していらしたのでしょうか。
[スポンサードリンク]
可視行だけを選択するサンプルマクロ
以下のSubプロシージャを実行すると、可視行だけを選択できます。
Sub 可視行のみ選択する()
Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).EntireRow.Select
End 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
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
[スポンサードリンク]
- Newer:7/22(土)13:30~ オブジェクト式解説編を開催しました(女性2・男性3)
- Older:VBAで可視セルのみ取得・選択する-SpecialCells(xlCellTypeVisible)
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視行だけを選択する