こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
さて、VBAの勉強を始めたあなたが、最初につまずきやすいポイントがやってきました。
- 「VBAでセルを操作したいけど、RangeとCellsってのがある…」
- 「どっちもセルを選ぶだけじゃないの?何が違うの?」
- 「調べても専門用語ばかりで、もう挫折しそう…」
わかります。私も最初はチンプンカンプンでした。
この記事は、そんな「VBAのセルの指定方法がわからなくて、不安になっている」方向けに書きました。
それでは行きましょう!
結論:違いは「住所」か「座標」か
いきなり結論から言いますね。
- Range = 「A1」のように、見たままの住所(番地)で指定する。直感的。
- Cells = 「3行目の、5列目」のように、数字の座標で指定する。計算に強い。
これだけです。
この「座標(数字)」で指定できることが、VBAを動かす上でめちゃくちゃ重要になってきます。
1. 「見たまま」でわかりやすい:Range
Rangeは、あなたがExcelシートで見ている「A1」とか「B2:C10」といったセルの番地を、そのままカッコの中に「”(ダブルクォーテーション)」で囲って書く方法です。
メリット:
- とにかく直感的でわかりやすい。
- 「A1からC5まで」のように、複数のセル範囲を”A1:C5″と一発で指定できる。
デメリット:
- 「i 行目のB列」のように、行や列が動的に変わる(変数を使う)処理がちょっと苦手。(できなくはない)
📝 コピペで動かしてみよう (Range)
VBAの編集画面(VBE)を開いて、Sub Test1() と End Sub の間に下のコードを貼り付けて実行(F5キー)してみてください。
A1セルに「こんにちは」と表示されます。
Sub Test1()
' Rangeを使ってA1セルに文字を入れる
Range("A1").Value = "こんにちは"
' Rangeを使ってB2からC5セルを黄色く塗る
Range("B2:C5").Interior.Color = vbYellow
End Sub

2. 「数字(座標)」で指定する:Cells
Cellsは、Cells(行番号, 列番号) という形で、どっちも数字で指定します。
- Cells(1, 1) → 1行目の1列目 → A1セル
- Cells(5, 3) → 5行目の3列目 → C5セル
メリット:
- 行番号や列番号に変数(i や j など)を使いやすい。
- VBAの真骨頂である「繰り返し処理(For文)」と最強のタッグを組みます。
デメリット:
- 「C5セル」がCells(5, 3)になるのが、最初はパッと見てわかりにくい。(A=1, B=2, C=3… と脳内変換が必要)
📝 コピペで動かしてみよう (Cells)
今度はCellsです。B2セル(2行目の2列目)に「VBA」と表示されます。
Sub Test2()
' Cellsを使ってB2セルに文字を入れる
' B列はAから数えて2番目なので「2」
Cells(2, 2).Value = "VBA"
End Sub
3. なぜ「Cells(座標)」が必要なの?
「Rangeが直感的でわかりやすいなら、全部Rangeで良くない?」と思いませんか。私は最初思ってました。
ここで、実務あるある「このリストの最後まで、C列に『処理済』と入力して」
こんな作業、よくありますよね。
もしRangeだけでやろうとすると…
Range(“C10”).Value = “処理済”
Range(“C11”).Value = “処理済”
Range(“C12”).Value = “処理済”
…
これを最後まで書くことこそ面倒です。
Cellsと「繰り返し(For文)」を使うと、こうなります。
📝 コピペで体感! (Cells + For文)
A列の1行目から10行目まで、一瞬で「No.1」~「No.10」と入力されます。
Sub Test3()
' 「i」という変数を使って、iを1から10まで変えながら繰り返す
Dim i As Long
For i = 1 To 10
' Cells(i, 1) は、iが1ならA1、iが2ならA2...となる
Cells(i, 1).Value = "No." & i
Next i
End Sub

Cells(i, 1) の i 。
この「変数が使える」+「数字で制御できる」ことこそが、CellsがVBAで必須とされる最大の理由です。
少し補足しておくと、Rangeでも変数は使えます。
ただし、Range(“A” & i)となり、Cellsほどスマートでなくなってしまうのです。
まとめ:最初の使い分けはコレでOK!
VBAに慣れないうちは、こう覚えておけば大丈夫です。
- Range を使うとき:
- 「A1セル」や「B2:D10」など、場所が決まっているセルを1回だけ操作したいとき。
- Cells を使うとき:
- For文(繰り返し)の中で、「i 行目」や「j 列目」のように動的にセルを操作したいとき。
VBAは、日々の「面倒くさい」を自動化してくれる、強い味方です。
最初は専門用語に圧倒されるかもしれませんが、一つずつ「動いた!」を積み重ねていけば、必ず使いこなせるようになります。
まずはコピペで動かして、「動いた!」という小さな成功体験を楽しんでみてほしいです!
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を厳選して紹介します。 もう本選びで失敗したくない方は、ぜひ参考にしてみてください。

コメント