ExcelでVBAを使っていると、A1やB1などのセル番地を取得して操作したいことが頻繁にありますよね。
セル番地の取得は「Address」プロパティを使います。
< スポンサーリンク >
アクティブなセルのセル番地を取得する
A1をアクティブにしておき、アクティブなセル番地を取得してみます。
絶対参照で取得する
VBEに次のように書き込みます。
Sub test()
Dim ad As String
ad = ActiveCell.Address
MsgBox ad
End Sub
書き込んだVBAを実行するとメッセージで表示されます。
列は絶対参照、行は相対参照で取得する
VBEに次のように書き込みます。
Sub test()
Dim ad As String
ad = ActiveCell.Address(RowAbsolute:=False)
MsgBox ad
End Sub
書き込んだVBAを実行するとメッセージで表示されます。
列は相対参照、行は絶対参照で取得する
VBEに次のように書き込みます。
Sub test()
Dim ad As String
ad = ActiveCell.Address(ColumnAbsolute:=False)
MsgBox ad
End Sub
書き込んだVBAを実行するとメッセージで表示されます。
列も行も相対参照で取得する
VBEに次のように書き込みます。
Sub test()
Dim ad As String
ad = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
MsgBox ad
End Sub
書き込んだVBAを実行するとメッセージで表示されます。
ブック名とシート名も取得する
VBEに次のように書き込みます。
Sub test()
Dim ad As String
ad = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True)
MsgBox ad
End Sub
書き込んだVBAを実行するとメッセージで表示されます。
構文
Rangeオブジェクト.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
指定されたセルのセル番地を文字列で返します。
引数は全て省略可能です。
RowAbsolute= True:行番地を絶対参照で取得(規定値)、False:行番地を相対参照で取得
ColumnAbsolute= True:列番地を絶対参照で取得(規定値)、False:列番地を相対参照で取得
ReferenceStyle= xlA1:A1形式、xlR1C1:R1C1形式
External= True:外部参照形式(ブック名、シート名も取得)、False:ローカル参照(規定値)
こんな記事も書いています