• ベストアンサー

EXCELのVBAでデータ範囲の取得方法について

エクセルのVBAで毎回変動するデータの最終行、列の位置を把握する方法について質問します。 現在、CurrentRegion.Rows(Cols).Countを使ってデータの最終行と列位置を出すようにしているのですが、列位置の数値を列記号(A,B,C)に直す方法がわかりません。どなたか良い方法をご指導願えないでしょうか。もしくは、データ範囲をA1:Y500のように一度に把握する方法があればご指導下さい。

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

  • ベストアンサー
  • taocat
  • ベストアンサー率61% (191/310)
回答No.4

  例えばCurrentRegionが、A1:F9 の場合。 ●列番号Fを求めるには Chr(64 + Range("A1").CurrentRegion.Columns.Count) Chr(65) が A Chr(66) が B Chr(67) が C 後続く。   ●絶対番地 $A$1:$F$9 を求めるには Range("A1").CurrentRegion.Address ●相対番地 A1:F9 を求めるには Range("A1").CurrentRegion.Address(0, 0) 以上。

tomosato
質問者

お礼

お礼がおそくなってすみません。ていねいなご指導ありがとうございました

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

こんにちは。maruru01です。 >データ範囲をA1:Y500のように一度に把握する方法 なら、Addressプロパティでいいのでは? CurrentRegion.Address(False, False) >列位置の数値を列記号(A,B,C)に直す方法 どういう目的なんでしょうか? 本当に「"A"」というアルファベットを取得したいのでしょうか?

tomosato
質問者

お礼

早速のご指導ありがとうございました。 CurrentRegionの使い方がもう一つわかっていなくて とんちんかんな質問をしてしまいました。 教えていただいた方法で再度挑戦してみます。 ありがとうございました。

すると、全ての回答が全文表示されます。
回答No.2

なんか遠回りしてるような。 >データ範囲をA1:Y500のように一度に把握する方法があればご指導下さい。 そのデータ範囲がCurrentRegionではないのですか。 アドレス表示したきゃ、 range("A1").CurrentRegion.Address(0,0) を参照すればよいけど、CurrentRegionを操作すれば よいんでないの。

tomosato
質問者

お礼

早速のご指導ありがとうございました。 CurrentRegionの使い方がもう一つわかっていなくて とんちんかんな質問をしてしまいました。 ご指摘の方法は大変参考になりました ありがとうございました。

すると、全ての回答が全文表示されます。
  • GETSTREET
  • ベストアンサー率18% (14/74)
回答No.1

Sub test() R = Cells(65536, 1).End(xlUp).Address C = Cells(1, 1).End(xlToRight).Address MsgBox R & ":" & C End Sub

tomosato
質問者

お礼

早速のご指導ありがとうございました。 具体的な方法をご指導いただき感謝します ありがとうございました。

すると、全ての回答が全文表示されます。