• ベストアンサー

エクセルの範囲セルの範囲セルについて

ExcelVBAで、ある範囲のセルを基準として、その範囲の中の範囲を表したい のですが、どうすればよいのでしょうか? 以下のセルで、A1:D2の範囲を使ってA2からD2の範囲を表す方法です。 A1 B1 C1 D1 A2 B2 C2 D2 A2のセルはRange("A1:D2").Cells(2,1)で表すように Range("A2:D2")でなく、Range("A1:D2")を使ってA2からD2の範囲を表す方法が知りたいです。

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

  • ベストアンサー
  • masa_019
  • ベストアンサー率61% (121/197)
回答No.1

こんにちは。 セレクトしたいかどうかはわかりませんが、 こういうことかな? Range("A1:D2").Rows(2).Select

その他の回答 (3)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.4

こんにちは > A2のセルはRange("A1:D2").Cells(2,1)で表すように 意味としてはRange("A1:D2")を基準に相対参照の方法、 ということですから、素直に応えれば、  Range("A1:D2").Range("A2:D2") になります。 例題がA1から始まるセル範囲を基準にした相対参照だからわかりにくいので、  Range("B2:E3").Range("A2:D2") などで確かめて貰えばと思います。 再度、 > A2のセルはRange("A1:D2").Cells(2,1)で表すように コレクションで表現するという意図なのだとしたら、 必ずしもCellsは必要ないですよね。  Range("A1:D2")(2, 1)  Range("A1:D2")(5) などで、最初の例は表せます。 メンバは単一セルなので、サイズを拡張してあげないとなりませんから、  Range("A1:D2")(2, 1).Resize(, 4)  Range("A1:D2")(5).Resize(, 4) なども例題と同じ方法での参照と言えると思います。 ただ、例題のように相対的に参照する範囲と元の範囲とで、 列または行が共通の場合は、  Range("A1:D2").Rows(2) が、書き易くて扱い易いと思いますし、使用頻度も高いですね。 実践的な答えとしては.Rows()となります。 書き方はいくらでもありますので、想定できる題意にだけ答えてみました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

Intersect(Range("A1:D2"), Range("A2").EntireRow).Select 一例です。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

Range("A1:D2").Offset(1).Resize(1).Select 一例です。

関連するQ&A