Range.Addressプロパティの絶対参照を外す方法
やりたい事
Range.Addressの既定値は絶対参照で返ってきます。絶対参照では使いにくいこともあると思うので「$」マークのついてない形で返却する方法を解説します。
絶対参照を返却するパターン
絶対参照を外した状態で返却するパターン
絶対参照を外すサンプルコード
「RowAbsolute」「ColumnAbsolute」の設定値をFalseにすると絶対参照が外れます。
Sub getShapeCell() ActiveSheet.Shapes.AddShape(msoShapeRectangle, 10, 10, 100, 100).Name = "四角" Range("D1") = ActiveSheet.Shapes("四角").TopLeftCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) Range("D2") = ActiveSheet.Shapes("四角").BottomRightCell.Address(RowAbsolute:=False, ColumnAbsolute:=False) End Sub
構文
expression は Range オブジェクトを表す変数です。
expression.Address (RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo)
名前 | 必須/オプション | 説明 |
---|---|---|
RowAbsolute | Optional | 行部分の参照を絶対参照として返すには、Trueを指定します。既定値はTrueです。 |
ColumnAbsolute | Optional | 列部分の参照を絶対参照として返すには、Trueを指定します。既定値はTrueです。 |
ReferenceStyle | 省略可能 | 参照形式を指定します。既定値はxlA1です。 |
External | Optional | 外部参照を返すには、Trueを指定します。ローカル参照を返すには、Falseを指定します。既定値はFalseです。 |
RelativeTo | Optional | RowAbsoluteおよびColumnAbsolute がFalseであるときに、ReferenceStyleがxlR1C1である場合は、相対参照の開始点を含める必要があります。この引数は開始点を定義するRange オブジェクトです。 |
コメント