- ベストアンサー
EXCEL VBA For to
For i = 1 To 10 の1から10までという記述を セルに記入してある値をひらうようにするには どのようにすればよいのでしょうか? For i = "A1" To "B1" としてみましたが、うまくいきませんでした。 分かりにくい質問で申し訳ありません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
既にhana-hana3さんが仰ってますが、私も変数に格納しておくのが良いと思います。 これでしたら、変数に格納した段階のセルA1・B1の値がループ制御に使用されるので、その後セルA1・B1の値を変更してしまっても問題ありません。 intA1 = Range("A1").Value intB1 = Range("B1").Value For i = intA1 To intB1 (処理内容) Next i
その他の回答 (4)
- fortranxp
- ベストアンサー率26% (181/684)
失礼しました。訂正です。 For i=Range("A1").Value To Range("B1").Value Next i もうお分かりですね。
お礼
VBAのことがまだよく分かっていませんでした。 様々な表記ができることがよくわかり勉強になりました。
- fortranxp
- ベストアンサー率26% (181/684)
For i=Range.("A1").Value To Range.("B1").Value Next i
補足
早速試してみましたが、 そのまま書いてみると、 (書いた直後に)コンパイルエラー 識別子または角かっこで囲む必要がある名前が含まれています。 角カッコにすると実行したときに コンパイルエラー とでてRangeが反転しました
- hana-hana3
- ベストアンサー率31% (4940/15541)
>"A1" では、A1 という文字の意味です。 セルの値を取得するには、#1さんの書かれたように Cells() を使うか、Range("A1") としてください。 また、For文 実行に別のシートがアクティブになる場合は、別のシートの値を拾ってしまうので注意してください。 できれば、For文 実行前に変数に格納した方が良いかと思います。
- 6dou_rinne
- ベストアンサー率25% (1361/5264)
なにをしたいのがいまひとつわからないのですが、セルの内容は Cells(行,列).value で取り出します。
お礼
勉強不足の私に、丁寧に答えていただいてありがとうございました。 思っていたとおりの動きができました。