3-6.セルのアドレス

今回は、セルのアドレス(セル番号)について説明します。
セルのアドレスは、A1形式(A1、A2などで表す形式)やR1C1形式(行番号,列番号で表す形式)があります。

Rangeオブジェクトを取得する際は、セルのアドレスをRangeプロパティやCellsプロパティに指定して取得しますが、セルのアドレスがわからない時に、選択しているセル範囲のアドレスが知りたい場合などがあります。

その場合は、RangeオブジェクトのAddressプロパティを使用することで、セルのアドレスを取得できます。

Addressプロパティ

○構文
Range.Address(RowAbsolute,ColumnAbsolute,ReferenceStyle,External,Relative)

○処理
指定したRangeのアドレスを取得します。
戻り値として、セルのアドレスの文字列として取得します。

○引数

引数必須データ型内容
RowAbsolute省略可True / False行番号について、
省略またはTrueを設定すると、絶対参照で取得($付きで取得)
Falseを設定すると、相対参照で取得($なしで取得)
ColumnAbsolute省略可True / False列番号について、
省略またはTrueを設定すると、絶対参照で取得($付きで取得)
Falseを設定すると、相対参照で取得($なしで取得)
ReferenceStyle省略可xlReferenceStyle省略またはxlA1を設定すると、A1形式で取得
xlR1C1を設定すると、R1C1形式で取得
External省略可True / FalseTrueを設定すると、外部参照で取得
省略またはFalseを設定すると、ローカル参照で取得
RelativeTo省略可Range引数RowAbsoluteとColumnAbsoluteがFalse かつ
引数ReferenceStyleがxlR1C1の場合、相対参照の基準となるセルを設定
Sub Addressプロパティのサンプルコード()
    
    '選択セルのアドレスを取得
    'A1形式で取得
    MsgBox Selection.Address
    '>>> $A$1:$C$3

    'R1C1形式で相対参照で取得(C3セルを選択している場合)
    MsgBox Selection.Address(False, False, xlR1C1, , Range("A1"))
    '>>> R[2]C[2]
    '引数名を省略する場合、指定しない引数は空白でカンマ区切りする必要があります
    '上記の場合、Externalの部分を空白(, ,)としています

    '外部参照で取得
    MsgBox Selection.Address(External:=True)
    '>>>[ブック名.xlsm]Sheet1!$C$3
    'Addressプロパティからブック名やシート名を取得できます
    
    'Addressプロパティの戻り値をRangeプロパティに設定することもできます
    '選択範囲の値を、別シートの同じ範囲にコピー
    Worksheets("別シート").Range(Selection.Address).Value = Selection.Value
    
End Sub

コメント