「エクセルvba 可視セルの選択」
「エクセルマクロ 可視セルのみ取得」
「フィルター vba 可視セル 取得」
といった検索で、アクセスが割とあります。
Excelを簡易データベースとして使っていて、フィルターをかけたときに、VBAを使ってフィルターされた見えているセル(可視セル)だけを取得・選択する方法を探している方による検索キーワードでしょう。
可視セルだけを選択するサンプルマクロ
以下のSubプロシージャが参考になるでしょう。
Dim rng As Range
Set rng = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
rng.Select
End Sub
下図のようにデータが存在しているときに、
以下のようにフィルタリングしておいて、
上記のSubプロシージャを実行すると、見えているセルのみが取得・選択されます。
サンプルマクロで利用しているオブジェクト式について
可視セルを表すRangeオブジェクトを取得しているのは「Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)」です。
「Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)」というオブジェクト式に登場する、プロパティ・メソッドは、すべてRangeオブジェクトを返します、
Range("A1")でA1セルを取得
グローバルメンバーのRangeプロパティを使ったオブジェクト式「Range("A1")」は、いうまでもなくA1セルを表すRangeオブジェクトを返します。
Range.CurrentRegionでアクティブセル領域を取得
RangeオブジェクトのCurrentRegionプロパティを使ったオブジェクト式「Range("A1").CurrentRegion」は、今回の場合は、A1:C6セルを表すRangeオブジェクトを返します。
Range.SpecialCells(xlCellTypeVisible)で可視セルを取得
性別に「F」と入力されているデータだけをフィルタリングしているので、RangeオブジェクトのSpecialCellsメソッドを使ったオブジェクト式「Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)」は、表示されているA1:C2, A5:C6セルを表すRangeオブジェクトを返します。
Range.Selectでセルを選択
最後にRangeオブジェクトに用意されているSelectメソッドを呼び出して選択を行っています。
最終更新日時:2024-07-25 15:30
- Newer:VBAで可視行だけを選択する
- Older:ウォッチウィンドウでセルの値を確認する
Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視セルのみ取得・選択する-SpecialCells(xlCellTypeVisible)