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

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

第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)
VBAでグラフを扱う時の解説になりますが、グラフの全ては解説しきれませんし、VBAでグラフを全て作成しようとするのはかなり大変です。雛形のグラフを作成しておき、VBAでは必要な部分のみ変更するようにした方が良いでしょう。VBAでグラフを扱うには、数多くのオブジェクトを理解する必要があります。

Rangeのプロパティは非常に沢山あります。
マクロVBA入門で重要なプロパティは一通り紹介していますが、他のプロパティにも目を通しておくと良いでしょう。
Rangeのプロパティ一覧 ・・・ 詳細解説ページへのリンクあり
エクセルの基本である、Rangeオブジェクトのプロパティの一覧です。太字リンク付きは、詳細解説ページ、または、応用したVBAコードがあるページにリンクしています。Excel2010までのRangeオブジェクトのプロパティ一覧 Excel2016で追加されたRangeオブジェクトのプロパティ一覧 CommentThreaded 範囲の左上隅のセルに関連付け…



同じテーマ「マクロ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 ・・・新着記事一覧を見る

ユーザーに絶対に停止させたくない場合のVBA設定|VBA技術解説(4月1日)
CharactersプロパティとCharactersオブジェクト|VBA技術解説(3月31日)
指数近似/対数近似/累乗近似(掲載順位とCTR)|エクセル関数超技(3月31日)
練習問題32(連続数値部分を取り出し記号で連結)|VBA練習問題(3月24日)
連続数値部分を取り出し記号で連結|エクセル関数超技(3月24日)
数式バーの高さを数式の行数で自動設定|VBAサンプル集(3月21日)
LET関数(数式で変数を使う)|エクセル入門(3月21日)
スピルに対応したXSPLITユーザー定義関数(文字区切り)|VBAサンプル集(3月15日)
XMATCH関数(範囲から値を検索し一致する相対位置)|エクセル入門(3月14日)
XLOOKUP関数(範囲を検索し一致する対応項目を返す)|エクセル入門(3月14日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.繰り返し処理(For Next)|VBA入門
9.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
10.セルに文字を入れるとは(Range,Value)|VBA入門




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


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



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