CurrentRegionプロパティ
Rangeオブジェクトで指定されているセルの、「アクティブセル領域」を取得出来ます。
ワークシート上のショートカットで言うところの、「Ctrl + Shift + *」ですね。
アクティブセル領域とは、アクティブ セルを含み、空白の行と列で囲まれているデータ領域
フィルターかけた表全体をコピーする場合に、絞り込んだあとの見えてるところだけコピーしたい場合に便利に使えます。
これで、アクティブセルのあるところの、アクティブセル領域を取得出来ます。
使い方
次のような表があった場合、アクティブセル領域を選択してみましょう。
Sub sample()
ActiveSheet.Range("A4").CurrentRegion.Select
End Sub
ここでは、セルをA4にしていますが、表の中ならどこでもOKです。
実行すると次のように、A4セルのアクティブセル領域が選択されます。
データが追加で入力されるシートなど、選択範囲が変わる表を指定するときに便利に使えます(^o^)
そして、フィルターで絞った表の見えてるところをコピーする場合も便利です。
次の表で、A列が”ひらちんの部屋”のものをAutoFilterで絞り込んで、絞り込んだものをコピーして、D列に貼り付けてみます。
コードはこちらです。 ※AutoFilterが分からないかたは先にこちらへ
Sub sample()
With ActiveSheet
'A列を”ひらちんの部屋”で絞り込む
.Range("A1").AutoFilter 1, "ひらちんの部屋"
'アクティブセル領域の指定
.Range("A1").CurrentRegion.Copy .Range("D1")
'フィルターの解除
.Range("A1").AutoFilter 1
End With
End Sub
オートフィルターで絞り込んだ後、CurrentRegionプロパティでA1セルアクティブ領域をコピーして、D1セルに貼り付ける処理を書いています。
最後に、フィルターで絞り込まれているところを解除しています。
分かりやすいように、動画でステップ実行の様子をみてみましょう!
このように、フィルターに対してCurrentRegionを実行すると、見えてるところだけコピーすることが出来ます(^o^)
コメント