関数などの式をVBAでセルに直接入力したいとき。
いくつかオプションを指定することで、Rangeオブジェクト
のアドレスに$
が付いたり付かなかったり、表記の方法とかをコントロールします。
この区別がこんがらがっちゃうので、自分用にまとめ直してみました。
構文
Object.Address(RowAbsolute:=***, _ ColumnAbsolute:=***, _ ReferenceStyle:=***, _ External:=***, _ RelativeTo:=***)
RangeオブジェクトのAddressプロパティは、
セルやセル範囲のアドレスを文字列で返します。
指定した引数によって、得られるアドレスの形式が異なります。
すべての引数は省略可能です。セルのアドレスを取得する(Addressプロパティ):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug
使い分け
結果 | 目的 | コード | 意味 | |
---|---|---|---|---|
① | $A$1 |
セルの固定 |
ActiveCell.Address
| 行と列の絶対参照 |
② | $A1 |
列の固定 |
ActiveCell.Address (RowAbsolute:=False) | 行のみ相対参照 |
③ | A$1 |
行の固定 |
ActiveCell.Address (ColumnAbsolute:=False) | 列のみ相対参照 |
④ | A1 |
固定なし |
ActiveCell.Address (RowAbsolute:=False, ColumnAbsolute:=False) | 行と列の相対参照 |
⑤ | R1C1 |
固定なし ※ A1 からの相対距離で指定 |
ActiveCell.Address (ReferenceStyle:=xlR1C1) | R1C1形式 |
⑥ | [Book1] Sheet1! $A$1 |
シートとブックを含めた参照 |
ActiveCell.Address (External:=True) | 外部参照形式 |
⑦ | R[-4]C[-1] |
セルの距離で指定 |
ActiveCell.Address (ColumnAbsolute:=False, RowAbsolute:=False, ReferenceStyle:=xlR1C1, RelativeTo:=Cells(5, 2)) | B5 からの相対参照 |
いつもPCのことばっかりなので、近いうちに音楽の話もしたいです。
できるかな。
参考
セルのアドレスを取得する(Addressプロパティ):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug