トップページ

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

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