前回は、Excelマクロでのセル選択で使用する、「Range」と「Cells」の違いや使い分けについて説明しましたが、今回はそれぞれの表記を変換する方法について解説します。
🔁 Cells(2, 3) を Range 表記に変換する方法
Cells(row, column)
の形式を A1形式の文字列(例: “C2″)に変換するには、Address
プロパティを使用します。
Dim cellAddress As String
cellAddress = Cells(2, 3).Address(False, False) ' 結果: "C2"
このコードを使用すると、Cells(2, 3)
のアドレスを絶対参照ではなく相対参照(ドル記号なし)で取得します。
✅ 表示形式の変換方法
.Address
の後に何も記載しないと、絶対参照での取得となるので、$C$2 となります。
表示形式を変換したい時は、.Address
の後に()で引数を記載する必要があります。

引数名 | 説明 |
---|---|
RowAbsolute | 行番号に $ を付けるかどうか(つける:True ) |
ColumnAbsolute | 列記号に $ を付けるかどうか(つける:True ) |
ReferenceStyle | 参照形式。A1 (”A1″形式)か R1C1 (”R1C1″形式) |
External | 外部参照にするかどうか(例:[Book1]Sheet1!$A$1 ) |
RelativeTo | 相対参照を使うときに基準にするセル範囲(ReferenceStyle = xlR1C1 時) |
VBAの .Address
プロパティは、セルや範囲の「アドレス(住所)」を文字列として取得するための便利な機能です。オプションを指定することで、アドレスの形式を柔軟にコントロールできます。

RowAbsolute
と ColumnAbsolute
はデフォルトが True
(つまり $C$2
)です。
・Cells(2,3).Address(True, False)
→ $C2
・Cells(2,3).Address()
→ $C$2
🔁 Range("C2") を Cells 表記に変換する方法
逆に、Range("C2")
を Cells
の形式に変換するには、Row
および Column
プロパティを使用します。
✅ 例:Range("C2") を Cells(2, 3) に変換
AD = "cells(" & Range("C2").Row & "," & Range("C2").Column & ")"
' 結果: cells(2,3)
このコードでは、Range("C2")
の行番号と列番号を取得し、それを Cells
の形式で表示しています。
この1行は、C2セルの行番号と列番号を取得し、それを "cells(行,列)"
という文字列として AD
という変数に代入しています。つまり文字列なので、その表記を記載(記録)することは出来ますが、そのまま使ってマクロを動かすことは出来ません。
セルを実際に参照したい場合は、下記のように記載します。
Dim myCell As Range
Set myCell = Cells( Range("C2").Row, Range("C2").Column )
🔁 複数セルの範囲を変換する方法
複数のセル範囲(例: Range("A1:C3")
)を Cells
の形式に変換するには、開始セルと終了セルを Cells
で指定し、Range
関数で範囲を作成します。
✅ 例:Range("A1:C3") を Range(Cells(1, 1), Cells(3, 3)) に変換
Dim startCell As Range
Dim endCell As Range
Set startCell = Range("A1")
Set endCell = Range("C3")
MsgBox "Range(Cells(" & startCell.Row & ", " & startCell.Column & "), Cells(" & endCell.Row & ", " & endCell.Column & "))"
このコードでは、範囲の開始セルと終了セルを取得し、それぞれの行番号と列番号を使用して Cells
の形式で範囲を表現しています。結果はこうなります!
結果: Range(Cells(1, 1), Cells(3, 3))
✅ まとめ
- 動的に指定する場合 →
Cells
が有利(行・列番号を変数化できる) - コードの可読性を優先する場合 →
Range("A1")
のほうが分かりやすい - 広い範囲を変数で指定する場合 →
Range(Cells(), Cells())
がベスト