プログラム中の処理の中で、特に、ループの繰り返し処理というのは初心者の
みならず、ベテランのプログラマーでも何やってんだかよく分からなくなって
くるということが多いものだと思います。
そんな時、役立つのが「実際の数値やセル名を当てはめて考えてみる」という
やり方で考えてみると、その状況というのがよく分かってきます。
例えばですが、
++++++++++++++++++++++++++++―
Sub Macro1()
a = 0
Range("B1").Select
For i = 1 To 5
a = a + i
ActiveCell.Offset(1, 0).Activate
Next i
ActiveCell.FormulaR1C1 = a
End Sub
++++++++++++++++++++++++++++―
と、このようなプログラムがあった場合に、
この5回のループが回ってループ処理を抜けた後の
ActiveCell.FormulaR1C1 = a
の行では、何を何処に書くというマクロなのかな?といった時に、
このループ処理の順を追って辿ってみると、
最初は、
a = 0
位置はB1のセル
まず1回目のループでは、
a = 0 + 1 (すなわち a = 1 )
1つ下のセルに移動 (すなわち B2のセル)
2回目のループでは、
a = 1 + 2 (すなわち a = 3 )
1つ下のセルに移動 (すなわち B3のセル)
3回目のループでは、
a = 3 + 3 (すなわち a = 6 )
1つ下のセルに移動 (すなわち B4のセル)
4回目のループでは、
a = 6 + 4 (すなわち a = 10 )
1つ下のセルに移動 (すなわち B5のセル)
5回目のループでは、
a = 10 + 5 (すなわち a = 15 )
1つ下のセルに移動 (すなわち B6のセル)
ループが終了したので、
ActiveCell.FormulaR1C1 = a
(すなわち、B6のセルに15と表示)
と、こんな具合にループ回数の順を追って考えていくとループ処理でやって
いることが、単純明解に分かりやすくなるとうわけです。
ループの繰り返し処理に頭が回らなくなった時は、
数字を入れて考える。
これ実践してみてください。