RangeとCellsはどうやって使い分けたらいいの?
組み合わせることもできるの?
Excelにおいてセルの操作は必須ですよね。
VBAでもセルの操作や参照をするときはRangeとCellsは必須項目です。
そこでRangeとCellsのコードの書き方や使い分け、組み合わせなど使えるテクニックを紹介します。
まずはVBAのルールから知りたいという方はこちらへ
Rangeって何?
Rangeは単一もしくは複数セルを指定するときに使うオブジェクトです。
Rangeを使ってセルを指定するときは「A1参照形式」を使って表記します。
Range("A1参照形式")
使用方法として、B3セルを選択したいときはRange(“B3”).Selectと表記すると選択できます。
Cellsって何?
Cellsは基本的には単一セルのみを指定するオブジェクトです。
Cellsを使ってセルを指定するときは「行番号,列番号」を使って表記します。
Cells(行番号,列番号)
Excelシート上でセルの番地が数字で分かります。
「行番号」は横、「列番号」は縦になります。
例えば、「C2」をCellsで表記したい場合はCells(2,3)になります。
あれ?順番が逆じゃないの!?と思われたかもしれませんが、Cellsでは(行,列)の順番になります。順番が覚えづらいと感じる方は下記の覚え方を参考にしてください。
RangeとCellsの使い分け
例えば、
行番号と列番号を数えて、Cellsでコードを書きますか?面倒ですよね。
Rangeを使って書く方が多いと思います。
以上のように、「このセルに入力や参照する。後は変えない!!」という時はRangeが見やすくて便利です。
しかし、処理毎にセルを変えたいという時はどうでしょうか?
Rangeだと毎回指定するコードを書くことになり、とても面倒です。
そこで、Cellsの登場です。
Cellsは数字でセルの番地を表すので、行番号や列番号に変数を入れる事でラクにセルの移動が可能になります。どういう事か疑問に感じると思うので、下記の例を参考にしてください。
Cellsを使うとラクですよね。
このような処理をRangeオブジェクトですると大変面倒になってしまいます。
Rangeを使って無理矢理セルの移動をするコードを書いてみましたが、配列などまだ紹介していない方法を使い、かつ面倒なのでお勧めしません!面倒だと思って頂ければ良いです。
RangeとCellsの組み合わせ
範囲を指定する時はRangeを使うと言いましたが、
「Cellsを使って、セルの範囲を指定したい時はどうするの?」
そんな時は、「RangeとCellsを一緒に使っちゃう!」と上手くいきます。
Range(Cells(行,列),Cells(行,列))を応用するとこんな事もできます。
少し難しいかもしれませんが、コードを書いていくと見なくても出来るようになります。
是非トライしてみてください。
コメント