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
を使った基本操作を通じて、それぞれの使い分け方を理解しておくことで、状況に応じた柔軟なセル操作ができるようになります。
コメント