[Excel VBA] セルの行列番号、参照範囲(アドレス)を取得する(Range.Address プロパティ) – Excel VBA
公開日:
:
最終更新日:2015/07/10
カテゴリ: 03-5_ExcelVBA_メモ・小技集
タグ: Excel VBA, Range.Address プロパティ, プロパティ
動作確認環境
Windows7
Excel: 2007
構文
1 2 |
対象範囲.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo) |
対象範囲: Range型
<戻り値>
・参照範囲を表す文字列型 (String) の値を返します。
<備考>
・引数 LookIn、LookAt、SearchOrder、および MatchByte の設定は、このメソッドを使用するたびに保存されます。
RowAbsolute | Variant型、省略可能 行の絶対参照: True (既定値) 行の相対参照: False |
ColumnAbsolute | Variant型、省略可能 列の絶対参照: True (既定値) 列の相対参照: False |
ReferenceStyle | ???型、省略可能 参照形式を指定します。 A1形式: xlA1(既定値) R1C1形式: xlR1C1 |
External | Variant型、省略可能 外部参照、ローカル参照のいずれを返すか指定します。 外部参照を返す: True ローカル参照を返す: False(既定値) |
RelativeTo | Variant型、省略可能 引数 RowAbsolute と引数 ColumnAbsolute の両方に False が指定されていて、引数 ReferenceStyle に xlR1C1 が指定されると、相対参照の開始点を含める必要があります。 Range オブジェクトで指定します。(サンプルコード参照) |
サンプルコード
アドレス取得、パラメータ設定の例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub GetAddress() 'アクティブセルのアドレスを取得する ' 'オプションなし(すべて既定値) MsgBox "ActiveCell.Address(既定値) = " & ActiveCell.Address '絶対座標でアドレス取得 MsgBox "ActiveCell.Address(RowAbsolute:=True, Columnabsolute:=True) = " _ & ActiveCell.Address(RowAbsolute:=True, Columnabsolute:=True) ' '相対座標でアドレス取得 MsgBox "ActiveCell.Address(RowAbsolute:=False, Columnabsolute:=False) = " _ & ActiveCell.Address(RowAbsolute:=False, Columnabsolute:=False) ' 'A1形式でアドレス取得 MsgBox "ActiveCell.Address(ReferenceStyle:=xlA1) = " _ & ActiveCell.Address(ReferenceStyle:=xlA1) 'R1C1形式でアドレス取得 MsgBox "ActiveCell.Address(ReferenceStyle:=xlR1C1) = " _ & ActiveCell.Address(ReferenceStyle:=xlR1C1) '外部参照でアドレス取得 MsgBox "ActiveCell.Address(External:=True) = " _ & ActiveCell.Address(External:=True) '相対参照でアドレス取得 この例ではアクティブセルを、A2からの相対参照を取得する MsgBox "ActiveCell.Address(RowAbsolute:=False, Columnabsolute:=False, ReferenceStyle:=xlR1C1) = " _ & ActiveCell.Address(RowAbsolute:=False, Columnabsolute:=False, ReferenceStyle:=xlR1C1, RelativeTo:=Range("A2")) End Sub |
パラメータ名を記載しなくても、任意の場所にパラメータを記入すれば動作する例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub GetAddress2() 'アクティブセルのアドレスを取得する ' 'オプションなし(すべて既定値) MsgBox "ActiveCell.Address(既定値) = " & ActiveCell.Address '絶対座標でアドレス取得 MsgBox "ActiveCell.Address(True, True) = " _ & ActiveCell.Address(True, True) ' '相対座標でアドレス取得 MsgBox "相対座標でアドレス取得" & vbCr & "ActiveCell.Address(False, False) = " _ & ActiveCell.Address(False, False) ' 'A1形式でアドレス取得 MsgBox "A1形式でアドレス取得" & vbCr & "ActiveCell.Address(, , xlA1) = " _ & ActiveCell.Address(, , xlA1) 'R1C1形式でアドレス取得 MsgBox "R1C1形式でアドレス取得" & vbCr & "ActiveCell.Address(, , xlR1C1) = " _ & ActiveCell.Address(, , xlR1C1) '外部参照でアドレス取得 MsgBox "外部参照でアドレス取得" & vbCr & "ActiveCell.Address(, , , True) = " _ & ActiveCell.Address(, , , True) '相対参照でアドレス取得 この例ではアクティブセルを、A2からの相対参照を取得する MsgBox "相対参照でアドレス取得" & vbCr & "ActiveCell.Address(False, False, xlR1C1, , Range(""A2"")) = " _ & ActiveCell.Address(False, False, xlR1C1, , Range("A2")) End Sub |
サンプルファイル
広告
関連記事
-
-
[Excel VBA] 改ページプレビュー、ノーマルビュー(標準)、ページレイアウト表示を切り替える -Window.Viewプロパティ-
動作確認環境 Windows7 Excel: 2007、2013 説明 ウィンドウに表示
-
-
[Excal VBA] セルに値を入れる – Range.Value プロパティ-
動作確認環境 Windows7 Excel: 2007 説明 セルに値をいれます。
-
-
実行中のマクロを中断する – Excel VBA
動作確認環境 Windows7 Excel: 2007 手順 Ctrl + Pause
-
-
[Excel VBA] ワークシートの変更を検知する (Worksheet.Change イベント)
動作確認環境 Windows7 Excel: 2007 構文 式:Workshee
-
-
[Excal VBA] セルをアクティブにする。 – Range.Activate メソッド-
動作確認環境 Windows7 Excel: 2007, 2013 説明 1つのセルをア
-
-
[Excel VBA] 任意のセルが、指定したセル範囲にあるか調べる(Application.Intersect メソッド
動作確認環境 Windows7 Excel: 2007 構文 式: Appl
-
-
[Excel VBA] メッセージボックスを使う
動作確認環境 Windows10 Excel: 2016 説明 メッセージボックスを使う
-
-
[Excel VBA] セルの検索(Range.Findメソッド)
動作確認環境 Windows7 Excel: 2007 構文 ・検索範囲の
-
-
[Excal VBA] オートフィルターを使ってリストにフィルターをかけます。 – Range.AutoFilter メソッド-
動作確認環境 Windows7 Excel: 2007, 2013 説明 オートフィルタ