HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > セルのアドレスを取得する(Addressプロパティ)

セルのアドレスを取得する(Addressプロパティ)|Excel VBA

セル操作関連のテクニック

セルのアドレスを取得する(Addressプロパティ)

(Excel 2000/2002/2003/2007/2010/2013)

RangeオブジェクトのAddressプロパティは、セルやセル範囲のアドレスを文字列で返します。
指定した引数によって得られるアドレスの形式が異なります。すべての引数は省略可能です。

構文  Object.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle,
                     External, RelativeTo)     取得のみ
設定項目内容
ObjectRangeオブジェクト
RowAbsoluteTrue:行の絶対参照(既定値)、False:相対参照 [省略可能]
ColumnAbsoluteTrue:列の絶対参照(既定値)、False:相対参照 [省略可能]
ReferenceStyle参照形式の指定を定数で指定。既定値はxlA1 [省略可能]
ExternalTrue:外部参照形式、False:ローカル参照(既定値)[省略可能]
RelativeTo相対参照形式での基準となるRangeオブジェクトを指定 [省略可能]

引数ReferenceStyleに指定する参照形式を表す定数一覧(XlReferenceStyle列挙体のメンバ)

定数内容
xlA11A1形式の参照
xlR1C1-4150R1C1形式の参照

次のコードは、セルA1のアドレスを様々な形式で表示します。

Sub Sample()
    Range("A1").Select
    Debug.Print "@行列の絶対参照" & vbTab & _
                ActiveCell.Address
    Debug.Print "A行のみ相対参照" & vbTab & _
                ActiveCell.Address(RowAbsolute:=False)
    Debug.Print "B列のみ相対参照" & vbTab & _
                ActiveCell.Address(ColumnAbsolute:=False)
    Debug.Print "C行列の相対参照" & vbTab & _
                ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
    Debug.Print "DR1C1形式  " & vbTab & vbTab & _
                ActiveCell.Address(ReferenceStyle:=xlR1C1)
    Debug.Print "E外部参照形式" & vbTab & vbTab & _
                ActiveCell.Address(External:=True)
    Debug.Print "FB5からの相対参照" & vbTab & _
                ActiveCell.Address(ColumnAbsolute:=False, RowAbsolute:=False, _
                        ReferenceStyle:=xlR1C1, Relativeto:=Cells(5, 2))
End Sub

●実行結果●

@行列の絶対参照    $A$1
A行のみ相対参照    $A1
B列のみ相対参照    A$1
C行列の相対参照    A1
DR1C1形式          R1C1
E外部参照形式      [Book1]Sheet1!$A$1
FB5からの相対参照  R[-4]C[-1]