【作成中】【Excel VBA】セルを参照する方法

目次

Excel VBAで1つのセルを参照するリテラル表記まとめ【完全解説】

1つのセルを参照するにはWorksheetオブジェクトのRangeプロパティまたはCellsプロパティを使用します。

Range("B3")
Cells(3, 2)
Cells(3, "B")

Excel VBAでは、1つのセルを指定する方法が複数存在します。
本記事では「直接指定(リテラル表記)」に絞って、実務で使う書き方をわかりやすく解説します。

1. A1形式で指定する方法(最も一般的

もっともよく使われるのがA1形式です。

Range("A1")

解説

  • Excelと同じ感覚で書けるため可読性が高い
  • マクロ初心者にも理解しやすい
  • 実務で最も使用頻度が高い

シートを明示する場合

Worksheets("Sheet1").Range("A1")

シートを省略するとActiveSheetが対象になります。
バグ防止のため、実務ではシートを明示するのが安全です。

2. R1C1形式で指定する方法

行番号と列番号で指定する形式です。

Range("R1C1")

解説

  • R = Row(行)
  • C = Column(列)
  • 数式をR1C1形式で扱う場合に便利

通常の業務ではA1形式のほうが使いやすいです。


3. Cellsプロパティで指定する方法

行番号・列番号を数値で指定します。

Cells(1, 1)

解説

  • 第1引数:行番号
  • 第2引数:列番号
  • ループ処理と相性が良い

シートを明示

Worksheets("Sheet1").Cells(1, 1)

実務ポイント

繰り返し処理ではこちらの方がよく使われます。


6. RangeとCellsを組み合わせる方法

Range(Cells(1,1), Cells(1,1))

解説

開始セルと終了セルを同じにすれば1セルになります。
範囲指定の応用形です。


【まとめ】直接リテラル指定といえる書き方

Range("A1")
Range("R1C1")
Cells(1,1)
[A1]
Evaluate("A1")

実務でのおすすめ順位

  1. ⭐⭐⭐⭐⭐ Worksheets("Sheet1").Cells(1,1)
  2. ⭐⭐⭐⭐⭐ Range("A1")
  3. ⭐⭐⭐ Cells(1,1)
  4. ⭐⭐ [A1]

間接参照(厳密にはリテラルではない)

Range("A1").Offset(0,0)
Selection.Cells(1,1)
ActiveSheet.UsedRange.Cells(1,1)

これらは基準セルを経由しているため、直接指定とは言いません。


結論

✔ 可読性重視 → Range("A1")
✔ ループ処理 → Cells(行, 列)
✔ 実務で安全 → シートを必ず明示する

VBAでは「どのシートを対象にしているか」を明示することが、最も重要です。


もしよろしければ、次は以下も解説できます。

  • セル参照の速度比較
  • RangeとCellsの内部的な違い
  • パフォーマンスを意識した書き方
  • バグを防ぐベストプラクティス

どの方向の記事に発展させますか?

よかったらシェアしてね!
  • URLをコピーしました!
目次