• ベストアンサー

セル範囲に対して行列指定する方法は?

セル範囲に名前を付けて、 その範囲の中で行、列を指定してセルを参照する方法はありますか?

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 Cells プロパティーで参照できますよ。   書式:Range("名前").Cells(RowIndex,ColumnIndex) 例えば、名前 TEST が B5:F20 で定義されているとすれば、   Set rngCell = Range("TEST").Cells(3,5) のようにするとオブジェクト変数 rngCell には F7 セルが参照されます。 名前で定義したセル範囲の左上角(ここでは B5 セル)を基点とし、   ・行方向に 3 番目 -->B5から3つ下 7行   ・行方向に 5 番目 -->B5から5つ横 F列 のセルが参照されているわけです。幾つか例を挙げると、   Debug.Print Range("TEST").Cells(1,1).Address  --> $B$5   Debug.Print Range("TEST").Cells(1,5).Address  --> $F$5   Debug.Print Range("TEST").Cells(16,1).Address --> $B$20 ですね。私は好みませんが、次のような書き方でも同様です。   Debug.Print Range("TEST")(3,5).Address > その範囲の中で.... 注意点ですが、上記の方法は“その範囲の中で”とは限らないのです。 例えば、   Debug.Print Range("TEST").Cells(1000,100).Address でも $CW$1004 が返ってしまうので、名前 TEST 内のセルかどうかは 別途ロジックが必要です。 あと、Intersect メソッドについてもヘルプを確認して下さい。

Poko-08
質問者

お礼

詳しい解説までして頂き、ありがとうございました。 無事にできました。

関連するQ&A