関数・メソッド

セルアドレスを取得する【Addressプロパティ】【ExcelVBA】

構文

Object.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

Address・・・・・・セルのアドレスを参照します。
RowAbsolute・・・・True:の絶対参照(規定値) False:の相対参照   【省略可能】 ColumnAbsolute・・True:の絶対参照(規定値) False:の相対参照   【省略可能】ReferenceStyle・・・参照形式の指定(A1形式 or R1C1形式)       ※詳細は下記表 External・・・・・・True:外部参照形式 False:ローカル参照形式     【省略可能】 RelativeTo・・・・・基準となるオブジェクトを指定          【省略可能】
Addressプロパティはセルやセル範囲のアドレスを文字列で取得します。
指定した引数によって取得するデータの内容が異なります。
 
ReferenceStyleに指定する定数一覧(XlReferenceStyle列挙体)
定数内容
xlA11A1形式の参照
xlR1C1-4150R1C1形式の参照

セルアドレスを取得するサンプルコード

Public Sub sample()
    
    '■絶対参照(行列)
    Debug.Print Range("A1").Address                     '$A$1
    '■相対参照(行のみ)
    Debug.Print Range("A1").Address(RowAbsolute:=False) ' A$1
    '■相対参照(列のみ)
    Debug.Print Range("A1").Address(ColumnAbsolute:=False) '$A1
    '■相対参照(行列)
    Debug.Print Range("A1").Address(RowAbsolute:=False, ColumnAbsolute:=False) 'A1
    '■R1C1形式
    Debug.Print Range("A1").Address(ReferenceStyle:=xlR1C1) 'R1C1
    '■外部参照形式
    Debug.Print Range("A1").Address(External:=True)         '[Book1]Sheet1!$A$1
    '■B3からの相対参照
    Debug.Print Range("A1").Address(ColumnAbsolute:=False, RowAbsolute:=False, ReferenceStyle:=xlR1C1, Relativeto:=Range("B3")) 'R[-2]C[-1]

    '■複数セル選択
    Debug.Print Range("A1:A3").Address '$A$1:$A$3

End Sub

注意点

  • 今回はシート名などは明示していませんのでActiveSheetから取得します。
  • 別のシートや別のブックのセル範囲を取得する場合は、Worksheetsを事前に指定しましょう。

関連記事

コメント

タイトルとURLをコピーしました