Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視セルのみ取得・選択する-SpecialCells(xlCellTypeVisible)

VBAで可視セルのみ取得・選択する-SpecialCells(xlCellTypeVisible)

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

「エクセルvba 可視セルの選択」
「エクセルマクロ 可視セルのみ取得」
「フィルター vba 可視セル 取得」
といった検索で、アクセスが割とあります。

Excelを簡易データベースとして使っていて、フィルターをかけたときに、VBAを使ってフィルターされた見えているセル(可視セル)だけを取得・選択する方法を探している方による検索キーワードでしょう。

[スポンサードリンク]

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

以下のSubプロシージャが参考になるでしょう。

Sub 可視セルのみを取得選択する()
 Dim rng As Range
 Set rng = Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)
 rng.Select
End Sub

下図のようにデータが存在しているときに、

可視セルのみ選択するExcelマクロ

以下のようにフィルタリングしておいて、

可視セルのみ選択するExcelマクロ

上記の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オブジェクトを返します。

可視セルのみ選択するExcelマクロ

Range.SpecialCells(xlCellTypeVisible)で可視セルを取得

性別に「F」と入力されているデータだけをフィルタリングしているので、RangeオブジェクトのSpecialCellsメソッドを使ったオブジェクト式「Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible)」は、表示されているA1:C2, A5:C6セルを表すRangeオブジェクトを返します。

可視セルのみ選択するExcelマクロ

Range.Selectでセルを選択

最後にRangeオブジェクトに用意されているSelectメソッドを呼び出して選択を行っています。

可視セルのみ選択するExcelマクロ

最終更新日時:2024-07-25 15:30

[スポンサードリンク]

Home » Excel VBA Rangeオブジェクト » SpecialCellsメソッド » VBAで可視セルのみ取得・選択する-SpecialCells(xlCellTypeVisible)

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

検索


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

.