|
▼nh さん:
>For i = 0 To 2
>Next
>この時、なぜ最終的に カウンタのiが3になってしまうの?
(流れを、トレースしてみましょう)
For i = 0 To 2
処理
Next
のとき、
まず、カウンタ変数i は 0にセットされ、
ループ内処理が終わって、
> Next
のところで、+1 され、ループ最終値2 と比較され、1<=2 ですから
ループ継続と判定され、
2回目のFor が始まります。
2回目の処理が終わって、
> Next
のところで、+1 され、ループ最終値2 と比較され、2<=2 ですから
ループ継続と判定され、
3回目のForループに入ります。
3回目の処理が終わって、
> Next
のところで、+1 され、カウンタiは 3になります。
ループ最終値2 と比較され、3> ですからLoopを脱出します。
(よく似ていますが、こちらは ちがいます)
Dim c As Range
For Each c In Range("A1:A3")
処理
Next
のばあいセル・オブジェクトc は コレクション内の3つのメンバ
[A1], [A2], [A3]
を順に巡回する、という動作になりますので、
巡回後は c Is Nothing になります。
Dim s As Variant
For Each s In Array("あ", "い", "う")
処理
Next
のような場合でも同様です。Loopが終わったらループ変数s
は Empty になります。
|
|