VBAでセルを指定する方法はRangeとCellsの2通りあります。
さて、一体何が違うのか分かりませんよね。
本質的にはどちらもRangeオブジェクトを取得するので違いはありません。
結果は同じですが、たどり着く方法が違うだけです。
この記事ではRangeとCellsの使い分け方についてご紹介します。
- RangeとCellsの使い方がわからない人
- 2つの使い分けに悩んでいる人
RangeとCellsはこうやって使い分ける!!
基本的な使い分け方
RangeとCellsの使い分け方は明確にあるわけではありません。
どちらかにしか出来ない事はありますが、それ以外についてはどちらを使っても問題ありません。
これからご紹介する使い分け方はあくまでも推奨ですので、実際にやってみて自分が良いと思う使い方をしましょう。
ちなみにVBAの学習を進めていくとRangeを使う頻度が自然と減ってきます。
書店で売られているような入門書にはRangeゴリ押しの本もあるようですが、無駄なコードが増える原因になり全体が分かりづらくなってしまう事がありますし、変数を使う場面ではどうしても使い辛くなってしまいます。
この後紹介するRangeを使う2つのケース以外はCellsを使っておくのが良いでしょう。
Rangeを使うケース
複数のセルを範囲指定するケース
Rangeでは複数のセルを範囲指定する事が出来ます。
Cellsでは記述出来ない為、範囲指定する場合は必ずRangeを使用する必要があります。
名前定義を使うケース
名前定義を使って指定する場合もRangeを使う必要があります。
Cellsでは記述する事が出来ません。
Cellsを使うケース
変数を使ってセルを指定するケース
繰り返し処理を使うようになると、変数を使用してセルの操作をするケースが増えてきます。
Rangeを使う場合でも変数を使う事が出来ますが、使いずらいのでおすすめしません。
変数を使ってセル番地を変動させるような場面ではCellsを使いましょう。
まとめ
どちらもほとんど同じ事ができますが、今回ご紹介したRangeを使う2つのケースはRangeでしか記述出来ません。
あとは好みの問題になりますが、基本的にはCellsをおすすめします。
絶対にRangeが良い!!個人的に見やすい!!という事であればRangeをメインで使用しても問題ありません。
誤差程度ですが、Rangeの方が実行速度が遅い傾向があります。
数万件のデータを扱うようなマクロではやはりCellsが良さそうですね。
コメント