< スポンサーリンク >

Excel VBA セルの番地を取得する

ExcelでVBAを使っていると、A1やB1などのセル番地を取得して操作したいことが頻繁にありますよね。

セル番地の取得は「Address」プロパティを使います。

 

構文

Rangeオブジェクト.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

 

指定されたセルのセル番地を文字列で返します。

引数は全て省略可能です。

RowAbsolute= True:行番地を絶対参照で取得(規定値)、False:行番地を相対参照で取得
ColumnAbsolute= True:列番地を絶対参照で取得(規定値)、False:列番地を相対参照で取得
ReferenceStyle= xlA1:A1形式、xlR1C1:R1C1形式
External= True:外部参照形式(ブック名、シート名も取得)、False:ローカル参照(規定値)

 

アクティブなセルのセル番地を取得する

A1をアクティブにしておき、アクティブなセル番地を取得してみます。 

絶対参照で取得する

VBEに次のように書き込みます。

Sub test()
    Dim ad As String
    ad = ActiveCell.Address
    MsgBox ad
 End Sub

VBAセル番地

 

書き込んだVBAを実行するとメッセージで表示されます。

VBAセル番地

 

列は絶対参照、行は相対参照で取得する

VBEに次のように書き込みます。

Sub test()
    Dim ad As String
    ad = ActiveCell.Address(RowAbsolute:=False)
    MsgBox ad
 End Sub

VBAセル番地

 

書き込んだVBAを実行するとメッセージで表示されます。

VBAセル番地

 

列は相対参照、行は絶対参照で取得する

VBEに次のように書き込みます。

Sub test()
    Dim ad As String
    ad = ActiveCell.Address(ColumnAbsolute:=False)
    MsgBox ad
 End Sub

VBAセル番地

 

書き込んだVBAを実行するとメッセージで表示されます。

VBAセル番地

 

列も行も相対参照で取得する

VBEに次のように書き込みます。

Sub test()
    Dim ad As String
    ad = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
    MsgBox ad
 End Sub

VBAセル番地

 

書き込んだVBAを実行するとメッセージで表示されます。

VBAセル番地

 

ブック名とシート名も取得する

VBEに次のように書き込みます。

Sub test()
    Dim ad As String
    ad = ActiveCell.Address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True)
    MsgBox ad
 End Sub

VBAセル番地

 

書き込んだVBAを実行するとメッセージで表示されます。

VBAセル番地

 

< スポンサーリンク >



サブコンテンツ

このページの先頭へ