CellsとRangeの違いと使い分け

VBAでセルの値を取得・設定する際によく使われるのが「Range」と「Cells」です。どちらもセルを操作する方法ですが、指定の仕方や用途に違いがあります。ここでは .Value を用いた基本操作を通じて、それぞれの使い方と特徴の違いを解説します。


1. Rangeの使い方と特徴

Range("A1").Value = "こんにちは"
  • "A1" のようにセル番地を文字列で直接指定できる
  • 特定のセルを直感的に指定したいときに便利
  • 複数セルの範囲指定も可能
    Range("A1:B2").Value = "まとめて入力"

2. Cellsの使い方と特徴

Cells(1, 1).Value = "こんにちは"
  • (行番号, 列番号) の形式でセルを指定
  • Cells(1, 1) は Range("A1") と同じ意味
  • 数値でセルを指定するため、動的な処理に向いている
  • 複数セルの一括指定はできない

3. Cellsとループ処理

Cells は行・列番号で指定できるため、繰り返し処理と非常に相性が良いです。以下は、A列の1行目から5行目までに1〜5の数値を順に入力する例です。

Sub CellsLoopExample()
Dim i As Long
For i = 1 To 5
Cells(i, 1).Value = i
Next i
End Sub
  • i を使って行番号を変化させることで、順に複数のセルにアクセスできます
  • このような繰り返し処理には Range よりも Cells の方が柔軟に対応できます

4. 使い分けのまとめ

使用目的推奨される書き方備考
セル番地を直接指定したいRange("A1")視覚的にわかりやすい
行・列番号で指定したいCells(1, 1)動的な処理に便利
複数セルを範囲指定したいRange("A1:B2")Cells では不可
繰り返し処理でセルを操作Cells(i, j)ループとの組み合わせが得意

5. おわりに

「Range」は明示的なセル指定に、「Cells」は行・列を使った動的な操作に適しています。.Value を使った基本操作を通じて、それぞれの使い分け方を理解しておくことで、状況に応じた柔軟なセル操作ができるようになります。

コメント

タイトルとURLをコピーしました