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

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

第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 ・・・新着記事一覧を見る

VBA100本ノック 18本目:名前定義の削除|VBA練習問題100(11月6日)
VBA100本ノック 17本目:重複削除(ユニーク化)|VBA練習問題100(11月6日)
VBA100本ノック 16本目:無駄な改行を削除|VBA練習問題100(11月5日)
VBA100本ノック 15本目:シートの並べ替え|VBA練習問題100(11月4日)
VBA100本ノック 14本目:社外秘シート削除|VBA練習問題100(11月3日)
VBA100本ノック 13本目:文字列の部分フォント|VBA練習問題100(11月1日)
VBA100本ノック 12本目:セル結合を解除|VBA練習問題100(10月31日)
VBA100本ノック 11本目:セル結合の警告|VBA練習問題100(10月30日)
VBA100本ノック 10本目:行の削除|VBA練習問題100(10月29日)
VBA100本ノック 9本目:フィルターコピー|VBA練習問題100(10月28日)


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

1.最終行の取得(End,Rows.Count)|VBA入門
2.RangeとCellsの使い方|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.マクロって何?VBAって何?|VBA入門
6.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルに文字を入れるとは(Range,Value)|VBA入門
9.とにかく書いてみよう(Sub,End Sub)|VBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門




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


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



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