【VBA基礎講座:第4回】セルの表し方について
この記事では、セルの表し方について紹介します。
マクロを利用するうえで、
- 特定のセルに値を入力する
- 特定のセルの値をコピーする
- 特定のセルに値を貼り付ける
など、特定のセルを指定する機会は多いです。
この記事では、セルの指定方法について紹介します。
この記事では実際にコードを記述して欲しいから、VBAを記述できる環境を用意してね。
Cellsを使用したセルの指定方法
まずは、基本的なセルの指定方法を紹介します。
Cellsを用いたセルの指定方法は次のとおりです。
Cells(行番号, 列番号)
具体的にいうと、A1セルを指定する方法は、次の2通りがあります
これらの指定方法は、どれも基本かつ重要なので、必ず覚えてください。
- Cells(1, 1)
- Cells(1, “A”)
行,列の順番なことと、列を文字列(アルファベット)で指定するときは””で囲むことに注意してね。
それぞれの指定方法のメリットと使い分け
前述の通り、Cellsでのセルの指定方法は2種類あります。これらの使い分け方法について紹介します。なお、以下の使い分け方については読み飛ばしてもらってもOKですので、余裕のある方だけざっと読んでみてください。(両方覚えてくださいね)
Cells(1, 1)の使いどころ
これは列番号を数字で指定する方法です。
例えば「A列からC列までの1行目に「あ」という文字を入力する等、2つ以上の列のセルを指定したい場合に利用します。また、一度作成したマクロを修正したい場合に、修正しやすいというメリットがあり、基本的にはこちらの指定方法を使うことが多いです。
Cells(1, “A”)の使いどころ
これは、列番号をアルファベット(列の文字)で指定する方法です。列を数字で指定する場合に比べて、コードを見た時に「どの列を指定しているか」が分かりやすいですため、自分以外の複数人がコードを修正する可能性がある場合には、こちらの指定方法を使うことがあります。
Rangeを使用したセルの指定方法
前章で取り扱ったCellsを利用することでセル単体を指定することは可能です。しかし、マクロを設計していると、複数のセルを一括で指定したいケースがあります。
この「複数のセルを指定したい」ときには、Rangeを利用します。
Rangeでは、セル単体ではなく、セルの「範囲」を指定することで、複数のセルを指定することができます。
Rangeを利用したセルの指定方法は、次の3種類があり、すべて文字列形式で指定します。
これらも重要ですので、覚えるようにしてください。
- Range(“A1”) :A1セルを指定します
- Range(“A1:B2”):セル範囲A1:B3(=A1、A2、B1、B2セル)を指定します。
- Range(“A1,B2”):A1セルとB2セルを指定します。
覚えることが増えてきたけど、これから勉強するうえで基礎になる部分だから頑張って覚えようね。
CellsとRangeの使い分け
では、いつCellsを使い、いつRangeを使うべきでしょうか。以下にその使い分け方を示します。
ただ、使い分けとしては、学習初期は「可能な限りCellsを使用、難しけれなRangeを使用する」でOKです。以下の内容も読み飛ばしてもらって大丈夫ですので、余裕のある人だけ目を通してください。
勉強していくうちに、自然と都合のいい方を選べるようになってくるよ。
特定のセルへのアクセス
- Cells: 特定の行番号と列番号が分かっている場合、セルに直接アクセスするのに便利です。
- Range: セルのアドレスや名前が分かっている場合、Rangeを使ってアクセスすることができます。
複数のセルへのアクセス
- Cells: 単一のセルへのアクセスに特化しており、複数のセルにまたがる範囲を扱うのは得意ではありません。
- Range: 複数のセルを含む範囲を指定し、一括で操作できます。セルの範囲を結合、分割、コピー、貼り付けなどの操作に便利です。
可読性
- Cells: 行番号と列番号の組み合わせを直接指定するため、コードが複雑になりがちです。
- Range: セル範囲を名前で指定することができ、可読性が高いコードを書くのに役立ちます。
練習問題
これまで学んだことを踏まえて、以下の演習問題に取り組みましょう。
注:答えは問題右の+をクリックしてください。
- Q1.Cellsを使って、B3セルを指定する方法を2つ答えよ。
-
答え:
- Cells(3, 2)
- Cells(3, “B”)
- Q2.Rangeを使って、A1セルからC2セルまでを指定する方法を答えよ。
-
答え:
Range(“A1:C2”)
- Q3.A1セルに1、B2セルからC3セルまでに2を代入するコードを記述せよ。*1
-
答え:
※あくまで一例です。1Sub practice3() 2 Cells(1, 1) = 1 3 Range("B2:C3") = 2 4End Sub
実行後は以下のようになります。
*1 ヒント:代入演算子「=」(右の値を左に代入)を使ってみよう
最後に
いかがだったでしょうか。この記事では、CellsとRangeを使ったセルの指定方法について紹介しました。
Excel VBAを学んでいくなかで、特定のセルを指定することは必須なので、分からなくなったらこの記事を読み返してみてほしいと思います。
それでは、バイよ。