GoGoマクロのブログ

初心者向けマクロ講座「Go!Go!マクロ」の筆者三太郎の公式ブログです。

GoGoマクロ

エクセル仕事の自動化が誰でもできる本

ループ処理を簡単に考える方法

2014-12-17 09:34:57 | マクロ作成のコツ

にほんブログ村 IT技術ブログへ

プログラム中の処理の中で、特に、ループの繰り返し処理というのは初心者の
みならず、ベテランのプログラマーでも何やってんだかよく分からなくなって
くるということが多いものだと思います。

そんな時、役立つのが「実際の数値やセル名を当てはめて考えてみる」という
やり方で考えてみると、その状況というのがよく分かってきます。

例えばですが、

++++++++++++++++++++++++++++―
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と表示)


と、こんな具合にループ回数の順を追って考えていくとループ処理でやって
いることが、単純明解に分かりやすくなるとうわけです。

ループの繰り返し処理に頭が回らなくなった時は、

数字を入れて考える。

これ実践してみてください。



 

コメント