Excel VBAでセルのアドレスを取得するAddressの使い方|絶対参照と相対参照

Addressとは、指定した範囲のアドレスを取得することができるプロパティです。引数の設定で絶対参照と相対参照など、色々できるので試してみます。

Addressの構文
オブジェクト.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle,External, RelativeTo)
取得のみになります。

  • オブジェクト : Rangeオブジェクト
  • RowAbsolute : (省略可能) 行の絶対参照はTrue(既定値)、相対参照はFalse
  • ColumnAbsolute : (省略可能) 列の絶対参照はTrue(既定値)、相対参照はFalse
  • ReferenceStyle : (省略可能) 参照形式の指定。xlA1でA1形式の参照(既定値)、xlR1C1でR1C1形式の参照
  • External True : (省略可能) 外部参照の場合はTrue、ローカル参照の場合はFalse(既定値)
  • RelativeTo : (省略可能) 相対参照するRangeオブジェクトを指定する(RowAbsoluteとColumnAbsoluteがFalseでReferenceStyleがxlR1C1の場合のみ)



Homeに戻る > Excel セルのTipsへ

Addressから絶対参照と相対参照で取得する

Addressを引数なしで使用したVBAです。
Addressを引数なしで使用したVBA

・RangeオブジェクトにB4:C7のセル範囲を設定しています。
・Addressで、設定したRangeオブジェクトのセル範囲を取得し、MsgBoxで表示します。

Sub MyAddress()
    Dim tRange As Range
    
    Set tRange = Range("B4:C7")
    tRange.Select
    MsgBox tRange.Address
End Sub

実行結果です。
B4:C7のセル範囲が絶対参照で取得できました。
B4:C7のセル範囲が絶対参照で取得できました

引数 RowAbsoluteとColumnAbsoluteに相対参照になるようにFalseを指定しました。
引数 RowAbsoluteとColumnAbsoluteに相対参照になるようにFalseを指定

・Address(False, False)で引数を指定しています。

Sub MyAddress()
    Dim tRange As Range
    
    Set tRange = Range("B4:C7")
    tRange.Select
    MsgBox tRange.Address(False, False)
End Sub

実行結果です。
$がなくなり、セル範囲が相対参照で取得できました。
$がなくなり、セル範囲が相対参照で取得できました


Addressの参照形式を指定する

引数 ReferenceStyleにxlR1C1を指定しR1C1形式に設定します。
引数 ReferenceStyleにxlR1C1を指定しR1C1形式に設定

・Address(, , xlR1C1)で引数を指定しています。

Sub MyAddress()
    Dim tRange As Range
    
    Set tRange = Range("B4:C7")
    tRange.Select
    MsgBox tRange.Address(, , xlR1C1)
End Sub

実行結果です。
R1C1形式でセル範囲を取得できました。
R1C1形式でセル範囲を取得できました

Addressの外部参照形式を指定する

ローカル参照から外部参照形式に変更したVBAです。
ローカル参照から外部参照形式に変更したVBA

・Address(, , , True)で引数を指定しています。

Sub MyAddress()
    Dim tRange As Range
    
    Set tRange = Range("B4:C7")
    tRange.Select
    MsgBox tRange.Address(, , , True)
End Sub

実行結果です。
ブック名+シート名+セルのアドレスの形式で表示されています。
ブック名+シート名+セルのアドレスの形式で表示されています

Addressの相対参照形式での基準となるRangeオブジェクトを指定する

基準となるRangeオブジェクトを指定したVBAです。
基準となるRangeオブジェクトを指定したVBA

・RowAbsoluteとColumnAbsoluteをFalseに、ReferenceStyleをxlR1C1に指定しています。
・基準となるセルを、Z100にしています。

Sub MyAddress()
    Dim tRange As Range
    
    Set tRange = Range("B4:C7")
    tRange.Select
    MsgBox tRange.Address(False, False, xlR1C1, , Range("Z100"))
End Sub

実行結果です。
Z100セルを指定しているので、マイナスの値になっています。
Z100セルを指定しているので、マイナスの値になっています

Address(False, False, xlR1C1, , Range("Z100"))
の引数の書き方は下のように、引数名と「:=」を使い指定することもできます。
引数が多い場合は、引数名と「:=」を使った方が分かり易いです。
Address(ColumnAbsolute:=False, RowAbsolute:=False,ReferenceStyle:=xlR1C1, Relativeto:=Range("Z100"))

Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved