• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBA Rangeの扱い)

ExcelVBA Rangeの扱い

このQ&Aのポイント
  • ExcelVBAでRangeを扱う際に注意すべきポイントとは?
  • Rangeの範囲指定方法について詳しく解説します。
  • なぜRangeの型が合わないとエラーが発生するのかについて説明します。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率47% (773/1617)
回答No.1

おかしいですね。 Cells(Cells なんていう書き方はありません。このような表記はエラーになるはずです。 Range(検索範囲).Cells(Cells(1, 5), Cells(Range(検索範囲).Rows.Count, 5)) Range(検索範囲).Cells(Cells(1, 5), Cells(8, 5)) Range("A1:F9").cells(cells(1,1), cells(3,3)) この3つは、エラーになるはずです。 Cells(Cells をRange(Cells に変えてください。 Range(検索範囲).Range(Cells(1, 5), Cells(Range(検索範囲).Rows.Count, 5)) は行けるはずです。私のパソコンでは大丈夫でした。

Nouble
質問者

お礼

有難うございます。 お示し、頂いた …).Range(cells(… で、動きました でも、 …).cells(cells(… でも、動く筈 なの、ですが… なんか変ですね 2011

その他の回答 (2)

回答No.3

私の環境(Win10+Excel2013)では   Cells(Cells(1, 5), Cells(9, 5) で動いてますよ。 ※E5セル=2、E9セル=3 なら、C2セルの値が返ります。 単に、  A2セルを含んで Cells(1,5)行目、Cells(9,5)列目が  あるいはそのプロセス中のどこかのセルが空白又は文字列だから ではないですかね。 ご提示の例だとE5・E8・求めるセル のどこかだと思いますが・・ 図だと、  Cells(1, 5) = 5 (行目)  ※E5セル  Cells(Range(検索範囲).Rows.Count, 5) = 3 (列目)   ※Range(検索範囲).Rows.Count = 8 なのでE8セル  ですので、起点をA2セルとして5行目・3列目で 6行目・3列目(C6セル)の「53」を返していますね。

Nouble
質問者

お礼

有難うございます。 〉Cells(Cells(1, 5), Cells(9, 5)で動いてますよ。 ですよねー? 変だなー? 一端、閉めますが 尚、 …).Range(cells(… と、したら 動きました、ので 此方で 取り敢えず、しのぐ 事、に します

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例に挙げている、Range("A1:F9").cells(cells(1,1), cells(3,3))などで cells(cells(1,1)とcells(3,3))の各々の「セルの値」がどうなっているか?書かないと質問にならないのでは。 ーー おのおののセルの値がが ・空白でないこと ・数字であるか Sub test01() MsgBox Cells(1, 1) MsgBox Cells(1, "A") End Sub が走るから ・列を示す部分で列記号にふさわしい値か ・列数制限を超えた数ではないか など注目したのか?わざわざ質問して他人に手数かけるのだから、報告すべきではないか。 ・Range範囲を超えて指定して大丈夫だったかな? やってみると、大丈夫のようだ。 Sub test02() MsgBox Worksheets("Sheet1").Range("A1:C3").Cells(2, 2) MsgBox Worksheets("Sheet1").Range("A1:C3").Cells(5, 6) End Sub は後半もエラーにならなかった。 この例は3行3列のRangeで、そのOFFSET的に5行6列を指定など。 Range("A1:C3")は左上隅のセルが起点の役割を果たすだけのようだ。

Nouble
質問者

お礼

有難うございます。 …).Range(cells(… で、動きました お騒がせ、しました。