Sub TEST6()
'アドレスを取得
MsgBox Range(Cells(1, 1), Cells(3, 3)).Address(False, False) 'A1:C3
End Sub
実行してみます。
セル範囲のアドレスを取得
結果は、『"A1:C3"』となりました。
選択してみるとわかりやすいので、選択してみます。
Sub TEST7()
Dim A
'セル範囲のアドレスを取得
A = Range(Cells(1, 1), Cells(3, 3)).Address(False, False) 'A1:C3'セル範囲を選択
Range(A).Select
End Sub
選択します。
取得したセル範囲
先ほどのアドレス『"A1:C3"』と一致しています。
正しくアドレスを取得できていることがわかります。
Addressを使う場面
Addressを使う場面について、2つ紹介します。
印刷範囲を設定する場合と、セル範囲のアルファベットを取得する場合です。
印刷範囲の設定
印刷範囲を設定する際には、印刷範囲の設定にアドレスを入力する必要があります。
ここで、Addressの出番です。
印刷範囲の設定は、『.PageSetUp.PrintArea』を使います。
『"A1:C3"』を印刷範囲として、設定してみます。
Sub TEST8()
'A1:C3を印刷範囲に設定
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(3, 3)).Address
End Sub
実行してみます。
Addressを使って印刷範囲を設定
印刷範囲をアドレスで指定して、設定することができました。
アドレスのアルファベットだけを取得
もう一つは、アドレスからアルファベットだけを取得する。というものです。
Rangeとかだと、アルファベットを使いますので、使う機会があるかもです。
Addressを使って、アドレスからアルファベットだけを取得するVBAコードです。
Sub TEST9()
Dim A, B
'アドレスを取得
A = ActiveSheet.Cells(1, 5).Address(True, False) 'E$3'$で文字列を分けて、アルファベットだけを取得する
B = Split(A, "$")(0) 'E
MsgBox B
End Sub
実行してみます。
アドレスのアルファベットだけを取得
結果は、『E』となりました。
5列目なので、『E』で正解ですね。
アルファベットが取得できれば、取得した列のセルを選択することができます。
アルファベット『E』を取得して、『E3』を選択してみます。
Sub TEST10()
Dim A, B
'アドレスを取得
A = ActiveSheet.Cells(1, 5).Address(True, False) 'E$3'$で文字列を分けて、アルファベットだけを取得する
B = Split(A, "$")(0) 'E'E3を選択
Range(B & 3).Select
End Sub