• ベストアンサー

EXCEL VBA  For to

For i = 1 To 10 の1から10までという記述を セルに記入してある値をひらうようにするには どのようにすればよいのでしょうか? For i = "A1" To "B1" としてみましたが、うまくいきませんでした。 分かりにくい質問で申し訳ありません。

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

  • ベストアンサー
回答No.4

既にhana-hana3さんが仰ってますが、私も変数に格納しておくのが良いと思います。 これでしたら、変数に格納した段階のセルA1・B1の値がループ制御に使用されるので、その後セルA1・B1の値を変更してしまっても問題ありません。 intA1 = Range("A1").Value intB1 = Range("B1").Value For i = intA1 To intB1  (処理内容) Next i

saku39saku39
質問者

お礼

勉強不足の私に、丁寧に答えていただいてありがとうございました。 思っていたとおりの動きができました。

その他の回答 (4)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.5

失礼しました。訂正です。 For i=Range("A1").Value To Range("B1").Value Next i もうお分かりですね。

saku39saku39
質問者

お礼

VBAのことがまだよく分かっていませんでした。 様々な表記ができることがよくわかり勉強になりました。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.3

For i=Range.("A1").Value To Range.("B1").Value Next i

saku39saku39
質問者

補足

早速試してみましたが、 そのまま書いてみると、 (書いた直後に)コンパイルエラー 識別子または角かっこで囲む必要がある名前が含まれています。 角カッコにすると実行したときに コンパイルエラー とでてRangeが反転しました

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>"A1" では、A1 という文字の意味です。 セルの値を取得するには、#1さんの書かれたように Cells() を使うか、Range("A1") としてください。 また、For文 実行に別のシートがアクティブになる場合は、別のシートの値を拾ってしまうので注意してください。 できれば、For文 実行前に変数に格納した方が良いかと思います。

  • 6dou_rinne
  • ベストアンサー率25% (1361/5264)
回答No.1

なにをしたいのがいまひとつわからないのですが、セルの内容は Cells(行,列).value で取り出します。

関連するQ&A

専門家に質問してみよう