【VBA】使用している範囲を取得する

2022年4月8日

VBA_使用中のセルを取得_1

Excel上のデータ整理等で
上のような画面の集計データを扱う事は少なくないかと思います。
その表のデータ全体を選択する方法は、

1.基準のセル.CurrentRegion プロパティ
2.ワークシート.UsedRange プロパティ

の2つの方法が挙 げられると思います。

それぞれについて、実際の画面を見ながら解説します。

広告

1.Range.CurrentRegionプロパティ           

VBA_使用中のセルを取得_4
空白行があれば、そこで遮られてしまうショートカット「Ctrl+A」と同じ効果
  Range("A1").CurrentRegion.Select

これはショートカットキーで
「Ctrl + A」を押した時に得られる結果と同じです。

例えば、セル【A1】から始まるデータがあったとすると、カーソルを【A1】に合わせて「Ctrl + A」した場合、VBE上では上のコードとなります。これはデータが続く限りの部分を選択している事になります。
つまり、データの途中で空白行・列があったりすると、そこで選択は途切れる、という事になります。

2.Worksheet.UsedRange プロパティ

VBA_使用中のセルを取得_4
使用している範囲すべてを選択。空白等があってもお構いなし
 ActiveSheet.UsedRange.Select

対してこちらは、データの途中に空白行・列があろうとも、使用しているセルがある場合は、そこまでを該当範囲とします。ちなみに、セル内に何も記載が無くても罫線が引いてあれば、これも該当範囲としてみなされます。また、一度、セル内に記載をし、BackSpaceやDeletで内容を取消しても、或いは罫線を引いて、取消したとしても、そのセル自体を削除しなければ、該当の範囲から抜け出せませんので、ご注意ください。

VBA_使用中のセルを取得_2
左図・・・[Range.CurrentRegionプロパティ]
右図・・・[Worksheet.UsedRange プロパティ]

 
上記2つの使用例とすれば、
「複数Sheetに散らばった表データを1つのSheetにまとめる」際に役に立つかと思います。詳しくは別のページにまとめました。下記のページを宜しければご参照ください。
 

 
何かのお役に立てれば幸いです。
以上になります。

広告