#3_1 セルの値の取得/設定
RangeオブジェクトとCellsコレクション
第3章ではセルをVBAで操作することを学びます。まずセルの指定方法はA1やB2と言った直感的に指定するRangeオブジェクトと、3行5列目のセルと言ったように数字で特定するCellsプロパティを用いた方法があります。
条件分岐や繰り返し処理なども考えるとCellsプロパティによる指定方法の方がオススメなのですが、VBA初心者のためにもまずは直感的で理解しやすいRangeオブジェクトを使いこなしましょう。
セルを選択しよう
さて、VBAでセルを操るための第一歩として「セルを選択」してみましょう。これはRangeオブジェクトに対してSelectメソッドを用いることで実現できます。(Cellsプロパティの場合も併記しておきます。)

また、セル範囲を選択する際には以下のようにします。


行/列全体を選択する
VBAでは行や列全体を選択することも可能です。その表現王法は多岐にわたりますが、以下を参考にしてください。
選択例 | 選択される範囲 |
---|---|
Range("1:1").Select | 行1を選択 |
Range("A:A").Select | 列Aを選択 |
Range("1:3").Select | 行1から行3までを選択 |
Range("A:C").Select | 列Aから列Cまで選択 |
Range("1:3,8:8").Select | 行1から行3まで、及び行8を選択 |
Cells.Select | すべてのセルを選択 |
Selectメソッドの落とし穴
Rangeオブジェクトに対してSelectメソッドを使う際には注意しなければならないことがあります。それは、「アクティブシートのセルしか選択できない」という事です。
つまり、次のようなステートメントではエラーが発生してしまうのです。

Rangeオブジェクトに対してSelectメソッドを使う場合には、その親オブジェクトであるシートをアクティブにしておく必要があります。そのため、次のようなマクロを組まなくてはいけません。

十分気をつけてください。