はじめに
今回は、VBAで頻繁に登場する**「CurrentRegion」**について勉強しました。
使用環境は以下のとおりです。
- 使用OS: Windows 10 Pro
- バージョン: 20H2
CurrentRegionとは何か
CurrentRegionとは、Excel上で「Ctrl」+「Shift」+「*(アスタリスク)」を押したときに選択される、データが連続している範囲のことを指します。
つまり、現在選択しているセルを起点として、空白のセルに囲まれたデータ範囲全体を一括で選択する機能です。
VBAでは、たとえば次のように使用します。
vbaコピーする編集するRange("A1").CurrentRegion.Select
このコードを実行すると、A1セルを起点に、上下左右に連続するデータ領域全体が選択されます。
イメージとしては、Excelの表(テーブル)を丸ごと一発で選択するような動きです。
実際の使用例
例えば、以下のようなデータがA1から並んでいる場合、
A列 | B列 | C列 |
---|---|---|
1 | あ | い |
2 | う | え |
3 | お | か |
A1を選択してCurrentRegion
を使うと、範囲「A1:C3」が自動で選択されます。
これを利用すれば、データ範囲を簡単に取得し、コピー、削除、書式設定などさまざまな処理を効率よく行うことができます。
CurrentRegionの注意点
空白セルがあるとうまく選択できない
失敗談として、実際に試してみたところ、途中に空白セルが存在すると、CurrentRegionがそこで途切れてしまうことがわかりました。
例えば、次のようにB2セルが空白だった場合、
A列 | B列 | C列 |
---|---|---|
1 | あ | い |
2 | (空白) | え |
3 | お | か |
この状態でA1セルからCurrentRegionを使うと、A1のみ、または狭い範囲しか選択されないことがあります。
そのため、表データに空白行や空白列がある場合には、CurrentRegionだけに頼らず、別の方法で範囲指定を検討する必要があります。
まとめ
- CurrentRegionは、現在位置から連続するデータ範囲を一括選択するVBAの機能です。
- 操作イメージとしては、Excelの「Ctrl+Shift+*(アスタリスク)」と同じ動きです。
- 空白セルが存在すると、期待した範囲を選択できない場合があるため、注意が必要です。
データが途切れていないきれいな表であれば、非常に便利に使える機能です。
場面に応じて適切に使い分け、VBAでの作業効率を高めていきたいと考えています。