Addressから絶対参照と相対参照で取得する
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のセル範囲が絶対参照で取得できました。
引数 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形式に設定します。
・Address(, , xlR1C1)で引数を指定しています。
Sub MyAddress()
Dim tRange As Range
Set tRange = Range("B4:C7")
tRange.Select
MsgBox tRange.Address(, , xlR1C1)
End Sub
実行結果です。
R1C1形式でセル範囲を取得できました。
Addressの外部参照形式を指定する
ローカル参照から外部参照形式に変更した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です。
・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セルを指定しているので、マイナスの値になっています。
Address(False, False, xlR1C1, , Range("Z100"))
の引数の書き方は下のように、引数名と「:=」を使い指定することもできます。
引数が多い場合は、引数名と「:=」を使った方が分かり易いです。
Address(ColumnAbsolute:=False, RowAbsolute:=False,ReferenceStyle:=xlR1C1, Relativeto:=Range("Z100"))