セルのアドレス取得

 

構文
Range.Address([RowAbsolute] [, ColumnAbsolute] [ , ReferenceStyle] [, External] [, RelativeTo])

 

※ カッコ内の引数は、省略可能

 

 

RowAbsolute True:行の絶対参照(既定値)、False:相対参照
ColumnAbsolute True:列の絶対参照(既定値)、False:相対参照
ReferenceStyle 参照形式を定数で指定する。
既定値(A1形式)はxlA1, R1C1形式に指定する場合は:xlR1C1
External True:外部参照形式、False:ローカル参照(既定値)
RelativeTo 相対参照形式での基準となるRangeオブジェクトを指定

 

 

Sub test()

    Dim myStr As String
   
    With Range("A2")
        myStr = myStr & "①行列の絶対参照:" & vbTab & _
                .Address & vbCrLf
                
        myStr = myStr & "②行のみ相対参照:" & vbTab & _
                .Address(RowAbsolute:=False) & vbCrLf
                
        myStr = myStr & "③列のみ相対参照:" & vbTab & _
                .Address(ColumnAbsolute:=False) & vbCrLf
                
        myStr = myStr & "④行列の相対参照:" & vbTab & _
                .Address(RowAbsolute:=False, ColumnAbsolute:=False) & vbCrLf
                
        myStr = myStr & "⑤R1C1形式:  " & vbTab & _
                .Address(ReferenceStyle:=xlR1C1) & vbCrLf
                
        myStr = myStr & "⑥外部参照形式:" & vbTab & _
                .Address(External:=True) & vbCrLf
        
        myStr = myStr & "⑦B3からの相対参照:" & vbTab & _
                .Address(ColumnAbsolute:=False, RowAbsolute:=False, _
                ReferenceStyle:=xlR1C1, Relativeto:=Cells(3, 2)) & vbCrLf

    End With
    
    MsgBox myStr

 

End Sub

 

 

実行結果

 

ちなみに、④行列の相対参照は、省略形式Address(0, 0)でも記載可能です。

 

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る