• ベストアンサー

EXCEL-VBAでRangeの末端の座標値を取得できますか?

Activecell.row / column でセルの座標値が取得できますが、範囲(例えば a1:c5 )を選択している時の、rangeの末端の座標 (この場合では c5 = ????.row=5,????.column=3) を取得する方法をご存知の方、教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

> マニュアルとか、サイトはありますか? 参考書は、ちょっと大きな本屋さんに行けば、一杯あるかと・・・ 内容を見て適当なものに決めればいいと思います。 サイトも、これまた一杯ありまして、何処が一番とかは、言えませんが、取り敢えず・・・ http://www.voicechatjapan.com/excelvba/ なんかは、どうですか。 あと、Cellsで思い出しましたが、これを使えば、ちょっと簡単になります。 どっちも、連続している1つの範囲の場合です。 飛び飛びの場合は、方法が違います。 Sub Test2() Dim Rng As Range With Selection   Set Rng = .Cells(.Rows.Count, .Columns.Count) End With MsgBox "Address = " & Rng.Address(False, False) & vbNewLine & _            "Row = " & Rng.Row & vbNewLine & _            "Column = " & Rng.Column, , "最終アドレス" End Sub

oyaji-2
質問者

お礼

ありがとうございます。勉強し甲斐が有りそうですが、兆戦してみます。

その他の回答 (2)

  • at121
  • ベストアンサー率41% (85/206)
回答No.2

範囲レンジの右下末端セル Set 右下末端セル = レンジ.Cells(レンジ.Count) With レンジ  Set 右下末端セル = .Cells(.Count) End With 右下末端セル が 結合されたセルだと 結合の左上でないと入力できない・・

oyaji-2
質問者

お礼

ありがとうございます。

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

範囲内のアクティブセルの位置が任意の場合として、こんな感じかな。 Sub Test1() Dim Rng As Range With Selection   Set Rng = .Resize(1, 1).Offset(.Rows.Count - 1, .Columns.Count - 1) End With MsgBox "Address = " & Rng.Address(False, False) & vbNewLine & _          "Row = " & Rng.Row & vbNewLine & _          "Column = " & Rng.Column, , "最終アドレス" End Sub

oyaji-2
質問者

お礼

ドットや---s の打ち間違えで何度かエラーになりましたが結局出来ました、感激です、ありがとうございます。 ところでこの手の内容が書かれたマニュアルとか、サイトはありますか?

関連するQ&A