セルのアドレスを取得する(Addressプロパティ)|Excel VBA |
RangeオブジェクトのAddressプロパティは、セルやセル範囲のアドレスを文字列で返します。
指定した引数によって得られるアドレスの形式が異なります。すべての引数は省略可能です。
構文 Object.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo) 取得のみ
設定項目 | 内容 |
---|---|
Object | Rangeオブジェクト |
RowAbsolute | True:行の絶対参照(既定値)、False:相対参照 [省略可能] |
ColumnAbsolute | True:列の絶対参照(既定値)、False:相対参照 [省略可能] |
ReferenceStyle | 参照形式の指定を定数で指定。既定値はxlA1 [省略可能] |
External | True:外部参照形式、False:ローカル参照(既定値)[省略可能] |
RelativeTo | 相対参照形式での基準となるRangeオブジェクトを指定 [省略可能] |
引数ReferenceStyleに指定する参照形式を表す定数一覧(XlReferenceStyle列挙体のメンバ)
定数 | 値 | 内容 |
---|---|---|
xlA1 | 1 | A1形式の参照 |
xlR1C1 | -4150 | R1C1形式の参照 |
次のコードは、セル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]