見出し画像

オートフィルタ後のセルの選択&色付け

Offset

offsetとは指定されたセル範囲(Rangeオブジェクト)をオフセット(移動)する。
オフセット(移動)したセル範囲を表すRangeオブジェクトを返す。

Range("A1").Offset(3, 3).Select
A1セルを、行(下)方向に3、列(右)方向に3移動した、D4セルになります。

Range("B3").Offset(-2,-1).Select
B3セルを、行(上)方向に2、列(左)方向に1移動した、A1セルになります。

Range("A1:A3").Offset(, 3).Select
A1:A3セル範囲を、列方向に3移動した、D1:D3セル範囲になります。

Range("A1:C1").Offset(3).Select
A1:C1セル範囲を、行方向に3移動した、A4:C4セルになります。

CurrentRegion

CurrentRegionとは指定したセルを含むアクティブセル領域のこと。
※アクティブセル領域とは、空白行、空白列で囲まれた領域のこと。

range("B2").currentregion.select

Rows.CountとColumns.Count

選択されている行数、列数のこと。
現在の選択範囲の行数を取得するにはSelection.Rows.Count【ロウズカウント】、現在の選択範囲の列数を取得するにはSelection.Columns.Count【カラムズカウント】で取得し、その値に対して範囲を拡大、縮小します。

Rows.count - 1は最下行の1行を除く。-3なら3行除く。
Columns.count -1は最終列から1列を除く。-3なら3列を除く。
※逆に拡張したい(1列増やす、1行増やす)ときは-を+に変える
 例)Columns.count + 3

Resize

Resizeとは指定されたセルを起点にセル範囲のサイズを変更する。
Range("A1").Resize(2, 2).Select
A1セルを起点に、2行2列の範囲になりますので、
A1~B2セルが選択されます。

Range("A1").resize(Range("A1").CurrentRegion.Rows.Count).Select
Range("A1").resize(, Range("A1").CurrentRegion.Columns.Count).Select
Range("A1").CurrentRegion.resize(, Range("A1").Columns.Count).Select
Range("A1").CurrentRegion.resize(Range("A1").Rows.Count).Select

組み合わせ

「 Range("A1").resize(Range("A1"). _
CurrentRegion.Rows.Count - 2).Offset(2, 5).Select」を解説
まず、下記の二つは同じ意味を持っています。

Range("A1").resize(Range("A1"). _ CurrentRegion.Rows.Count - 2, Range("A1").CurrentRegion.Columns.Count - 10).Offset(2, 5).Select
Range("A1").resize(Range("A1"). _ CurrentRegion.Rows.Count - 2).Offset(2, 5).Select

実際フィルタをしていない状態だと下記の範囲が選択されている。
しかしフィルタにより表示されているセルだけを選択や色付けが可能。
ですので、「 CurrentRegion.Rows.Count - 2)」の2は3でも5でもいくつでもOK。

因み以下は「 CurrentRegion.Rows.Count - 2)」で最終行含め2行除き、.Offset(2, 5)で下に2行、右に5つ移動してます。

Range("A1").resize(Range("A1"). _ CurrentRegion.Rows.Count - 2).Offset(2, 5).Selec

フィルタで絞った状態で以下のマクロを実行してみます
Range("A1").resize(Range("A1"). _
CurrentRegion.Rows.Count - 2).Offset(2, 5).Interior.Color = vbYellow

マクロを実行するときの絞ってある状態

色付けされました。

マクロ実行後の状態。

フィルターをリセットしてみます。

フィルタをリセットした状態

フィルタをリセットしてもフィルタ中に表示されていたセルのみに色をつけることができました。

いいなと思ったら応援しよう!