- ベストアンサー
エクセルの範囲セルの範囲セルについて
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の範囲を表す方法が知りたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 セレクトしたいかどうかはわかりませんが、 こういうことかな? Range("A1:D2").Rows(2).Select
その他の回答 (3)
- cj_mover
- ベストアンサー率76% (292/381)
こんにちは > 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)
Intersect(Range("A1:D2"), Range("A2").EntireRow).Select 一例です。
- merlionXX
- ベストアンサー率48% (1930/4007)
Range("A1:D2").Offset(1).Resize(1).Select 一例です。