VBA入門
RangeのAddressプロパティ

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
最終更新日:2021-10-25

第84回.RangeのAddressプロパティ


Addressプロパティは、セル範囲(Rangeオブジェクト)の参照範囲を表す文字列の値を返します。
引数により、参照方法($の付いた絶対参照)や形式(R1C1形式)を指定できます。


Addressは、マクロVBAの中で処理の一環として使う事はあまり多くないかもしれませんが、
VBA作成過程ではRangeオブジェクト変数のアドレス確認に使う事もあり、必須習得プロパティになります。


Addressプロパティの構文

Range.Address(RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)

RowAbsolute

行部分の参照を絶対参照として返すには、True を指定します。
既定値は True です。

ColumnAbsolute

列部分の参照を絶対参照として返すには、True を指定します。
既定値は True です。

ReferenceStyle

参照形式を指定します。
xlA1 : A1 形式の参照で返されます。
xlR1C1 : R1C1 形式の参照で返されます。
既定値は xlA1 です。

External

外部参照を返すには、True を指定します。
ローカル参照を返すには、False を指定します。
既定値は False です。

RelativeTo

引数 RowAbsolute と引数 ColumnAbsolute の両方に False が指定されていて、
引数 ReferenceStyle に xlR1C1 が指定されると、相対参照の開始点を含める必要があります。
この引数は、参照の開始点を定義する Range オブジェクトを使用します。


名前付き引数になります。

戻り値
Rangeオブジェクトの参照範囲を表す文字列型 (String) の値を返します。


Adressの使用例

MsgBox Range("A1").Address
$A$1」と表示されます。

MsgBox Range("A1").Address(False, False)
A1」と表示されます。

MsgBox Range("A1").Address(, , xlR1C1)
R1C1」と表示されます。

MsgBox Range("A1").Address(External:=True)
[ブック名]シート名!$A$1」と表示されます。

MsgBox Range("A1").Address(False, False, xlR1C1, , Range("B2"))
R[-1]C[-1]」と表示されます。


他のオブジェクトにセル範囲を渡す場合

対象のオブジェクが存在するシートと、そのオブジェクト内で参照しているセル範囲のシートが違う事があります。
むしろ違う場合の方が多いでしょう。
そもそも、シート以外に含まれているオブジェクトもあります。
代表的なオブジェクトとしてグラフを考えてもらうと良いでしょう。

そのようなオブジェクトに、セル範囲を文字列として渡す場合は、
External:=True
この指定をしてシート名が付加した状態で使う場合があります。
ただし、ブック名まで付加されていることで正しく動作しないような場合もありますので注意してください。
マクロVBA入門の少し先の回になりますが、以下ではReferenceStyle、Externalを使っています。
第96回.グラフ(Chart)
・グラフ(Chart)関連のオブジェクト群 ・単純な棒グラフの作成 ・2軸グラフの作成と、グラフタイトルをA1セルにリンク ・マクロVBAでのグラフの扱いについて

Rangeのプロパティは非常に沢山あります。
マクロVBA入門で重要なプロパティは一通り紹介していますが、他のプロパティにも目を通しておくと良いでしょう。
Rangeのプロパティ一覧 ・・・ 詳細解説ページへのリンクあり
・Excel2010までのRangeオブジェクトのプロパティ一覧 ・Excel2016で追加されたRangeオブジェクトのプロパティ一覧 ・スピルにより追加されたRangeオブジェクトのプロパティ一覧




同じテーマ「マクロVBA入門」の記事

第81回.総合練習問題9
第82回.RangeのResizeプロパティ
第83回.RangeのOffsetプロパティ
第84回.RangeのAddressプロパティ
第85回.結合セルの扱い
第86回.総合練習問題10
第88回.並べ替え(Sort)
第89回.オートフィルター(AutoFilter)
第90回.フィルターオプションの設定(AdvancedFilter)
第91回.条件付き書式(FormatCondition)
第126回.入力規則(Validation)


新着記事NEW ・・・新着記事一覧を見る

シートコピー後のアクティブシートは何か|ツイッター出題回答 (2023-09-19)
Excel関数の引数を省略した場合について|ツイッター出題回答 (2023-09-14)
セル個数を返すRange.CountLargeプロパティとは|VBA技術解説(2023-09-08)
記号を繰り返してグラフ作成(10単位で折り返す)|ツイッター出題回答 (2023-08-28)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-08-24)
ランクによりボイントを付ける(同順位はポイントを分割)|ツイッター出題回答 (2023-08-22)
OneDrive使用時のThisWorkbook.Pathの扱い方|VBA技術解説(2023-07-26)
列幅不足による###表示や指数表示を判定する|VBA技術解説(2023-07-12)
シートを削除:不定数のシート名に対応|VBAサンプル集(2023-07-04)
シート関数のCOUNTIFS,SUMIFS,MAXIFSと同じ処理|Power Query(M言語)入門(2023-02-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.繰り返し処理(For Next)|VBA入門
4.変数宣言のDimとデータ型|VBA入門
5.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
6.マクロとは?VBAとは?VBAでできること|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
10.条件分岐(IF)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ