第3講 繰り返し処理をさせよう(For文を理解しよう)。
第1話 1から10までの和を求めよう。
まず、サンプル6を開いてください。
そして、Alt+F11によってプログラムを見てください。
Private Sub CommandButton1_Click()
Dim wa As Integer, i As Integer
Cells(5, 1) = "1から10までの和"
wa=0
For i = 1 To 10
wa = wa + i
Next
Cells(6, 1) = wa
End Sub
Dim wa As Integer, i As Integerは変数waとiを整数型と定義しています。
(変数の定義は「,」で繋いでいけば複数個同時にできます。)
Cells(5, 1) = "1から10までの和"はExcelのセルA5に「1から10までの和」と入力しています。
wa=0で変数和の初期値を0としています。
ここで学ぶFor文とは
For i = 1 To 10
wa = wa + i
Next
の部分です。
対象を小学生の高学年以上の人としていますので、
For、To、Nextの意味も説明しておきましょう。
Forは「から」を意味します。
Toは「まで」です。
ですからFor i = 1 To 10は、
iは1から10までという意味になります。
Nextは「次」を意味します。
3行で行っていることは、
iを1から10まで変えていきながら、
wa = wa + i
を繰り返しなさいという命令になります。
第1行For i = 1 To 10と第3行Nextで挟まれた部分が、
10回繰り返されたことになります。
このように繰り返すことを繰り返し処理といいます。
10回の動きを追ってみましょう。
1回目はi=1から始まります。
そして、waは最初0ですからwa = wa + iの右辺は、
0+1です。
=によってその合計1がwaに入ります。
Next(次)によって次の繰り返しがなされます。
今度はi=2で、waは前回の処理により1となっていますので
wa + iは1+2となります。
=によってその計3がwaに入ります。
Next(次)によって3回目の繰り返しがなされます。
i=3でwa=3ですから、
今回wa + iは3+3となります。
=によって6がwaに入ります。
以下同様に計算されていきますが、
その流れを図にすると
0+1
↓
1
1+2
↓
3
3+3
↓
6
6+4
↓
10
10+5
↓
15
15+6
↓
21
21+7
↓
28
28+8
↓
36
36+9
↓
45
45+10
↓
55
となります。
wa+iですから+の左側がwaで+の右側がiですから
waの値が0,1,3,6,10,15,21,28,36,45,45と動いていき、
iは1,2,3,4,5,6,7,8,9,10と動いています。
以上の10回の処理により1+2+3+・・・+10の計算が行われているということは、
おわかりでしょうか。
以上の流れをスローモーションで再現したものが次のプログラムです。
クリックして実行してみてください。
再現プログラム
なお、For i = 1 To 10 Step 2
としますとiは2飛びに変化させることができます。
Step 2とつけたときのiの動きは、
1,3,5,7,9となります。
3飛びに動かしたいなら
For i = 1 To 10 Step 3
とすればよいのです。
この場合のiの動きは、
1,4,7,10となります。
逆に1ずつ減らしていきたいなら
For i = 10 To 1 Step -1
です。
Stepはステップです。ですから変化させる幅という意味になります。
Stepを省略するとStepは1と判断されます。
さて、皆さん次の課題の挑戦しましょう。
@ 5+6+7+・・・+55
A 2+4+・・・+100
B 1+3+・・・+99
C 4+7+10+・・・+304
を計算するプログラムを組んでみましょう。
解答はあくまで例です。プログラムの場合正解は無限にあると言っていいのです。
だから、正確に計算できるプログラムであればすべて正解ということになります。
できれば、解答例とは違うプログラムも考えるようにしましょう。
プログラムでは自分で考えることが大切だからです。