'絶対参照アドレスを取得 Debug.Print Selection.Address(, , xlR1C1)
'A1からの相対参照アドレスを取得 Debug.Print Selection.Address(False, False, xlR1C1)
'B1からの相対参照アドレスを取得 Debug.Print Selection.Address(False, False, xlR1C1, , Range("B1"))
'ブック名とシートまで含めて取得 Debug.Print Selection.Address(False, False, xlR1C1, True)
指定のセル範囲アドレスを取得するには「Address」プロパティを使用します
アドレスは文字列で返され、引数の設定により取得内容が変化します
A1セルでアドレスを取得する動きです
Debug.Print Selection.Address(, , xlR1C1)
通常のR1C1形式の取得方法です
ここでは「R1C1」が返されます
Debug.Print Selection.Address(False, False, xlR1C1)
1つ目の引数が行の設定で、2つ目の引数が列の設定になります
Falseを指定することで、相対参照になります
相対参照で取得しますが、A1からの相対参照になるので「RC」が返されます
これは「R0C0」の事になりますが、0は表示しないのでアルファベットだけになっています
Debug.Print Selection.Address(False, False, xlR1C1, , Range("B1"))
相対参照で起点のセルをB1セルに指定して取得しますので「RC[-1]」が返されます
5つ目の引数をRangeで指定したセルを起点にします
ここではB1になるので、B1からA1へは列がマイナス1になるのでCが-1になっています
この5つ目の引数はR1C1形式でのみ使用可能です
Debug.Print Selection.Address(False, False, xlR1C1, True)
4つ目の引数をTrueに指定すると、ブック名とシート名を含めて取得しますので、「[Wordpress.xlsm]Sheet1!RC」が返されます
ブック名やシート名をそれぞれ省くことはできません
必要な場合は別の処理を組む必要があります
この画像ではSelectionの起点セルがB1になっています
3つ目以外のコードではアドレス取得の起点セルがA1からになっています
3つ目のコードでは起点セルがB1になっているので、返されている「RC:R[4]C」の「RC」は上の処理と同じアドレスですが、実際にはB1になっています
参照設定ならではの動きです
R1C1形式は、パッと見ただけでどのセルを指しているか分かりにくいのですが、相対参照で起点セルまで変更するともはや意味不明なほど分かりにくいですね
でもそれは、人間の脳での話でパソコン的には分かり易い表現なのでアドレスをユーザーに提示する訳ではない場合は有効な取得法ではあります
関連の記事