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

即効テクニック

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

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

(Excel 2000)
対象のセル範囲のアドレスを文字列で取得します。引数は全部で5つあり、その指定により結果の文字列は異なります。場合によって使いわけましょう。引数ReferenceStyleの値については、次の表を参照してください。

・引数ReferenceStyleで指定する定数一覧(XlReferenceStyleクラス)

 定数     値       内容             例
 xlA1     1        A1形式の参照     A1:B2
 xlR1C1   -4150    R1C1形式の参照   R1C1:R2C2

構文  Object.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle,
                     External, RelativeTo)     取得のみ

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

次のコードは、セルA1のアドレスを様々な参照形式で確認します。
●サンプル●
Sub AddressSamp1()

    Range("A1").Select
    Cells(2, 1).Value = "@"
    Cells(2, 2).Value = ActiveCell.Address
    Cells(3, 1).Value = "A"
    Cells(3, 2).Value = ActiveCell.Address(RowAbsolute:=False)
    Cells(4, 1).Value = "B"
    Cells(4, 2).Value = ActiveCell.Address(ColumnAbsolute:=False)
    Cells(5, 1).Value = "C"
    Cells(5, 2).Value = ActiveCell.Address(RowAbsolute:=False, _
        ColumnAbsolute:=False)
    Cells(6, 1).Value = "D"
    Cells(6, 2).Value = ActiveCell.Address(ReferenceStyle:=xlR1C1)
    Cells(7, 1).Value = "E"
    Cells(7, 2).Value = ActiveCell.Address(External:=True)
    Cells(8, 1).Value = "F"
    Cells(8, 2).Value = ActiveCell.Address(ColumnAbsolute:=False, _
        RowAbsolute:=False, ReferenceStyle:=xlR1C1, Relativeto:=Cells(8, 2))

End Sub
●解説●
それぞれ、次のような参照形式でアドレスを取得します。

@行列を絶対参照で取得
A行のみ相対参照で取得
B列のみ相対参照で取得
C行列を相対参照で取得
DR1C1形式で取得
E外部参照形式で、ブック名とシート名も取得
FセルB8からの相対参照で取得