第4講 2次元ループに挑戦しよう。
第1話 2次元ループの簡単な例

1から9までの和を求めるプログラムを考えてみましょう。

Private Sub CommandButton1_Click()
    Dim wa As Integer, i As Integer

    wa = 0
    For i = 1 To 9
        wa = wa + i
    Next
    Cells(5, 1) = wa

End Sub

これと同じ計算は次の2次元ループを使ってもできます。

Private Sub CommandButton1_Click()
    Dim wa As Integer, i As Integer, j As Integer

    wa = 0
    For i = 1 To 3
        For j = 1 To 3
            wa = wa + 3 * (i - 1) + j
        Next
    Next
    Cells(5, 1) = "1から9までの和"
    Cells(6, 1) = wa

End Sub
サンプル7参照)

3 * (i - 1)の*は×を表します。
×÷はVisual Basicにはないので、
*と/で代用しているのです。

ループする文字が2つあるので2次元ループです。
この動きトレースしてみましょう。
i = 1から始まります。
そして
        For j = 1 To 3
            wa = wa + 3 * (i - 1) + j
        Next

によって、i = 1の間にjは1,2,3と動いていきます。
i = 2のときもi = 3のときも同様ですから、
wa + 3 * (i - 1) + j
の動きをトレースすると、
i=1のとき
1←0+3×(1−1)+1
3←1+3×(1−1)+2
6←3+3×(1−1)+3
i=2のとき
10←6+3×(2−1)+1
15←10+3×(2−1)+2
21←15+3×(2−1)+3
i=3のとき
28←21+3×(3−1)+1
36←28+3×(3−1)+2
45←36+3×(3−1)+3
となり、1から9までの和が計算できることになります。

では皆さんサンプル7を参考にして、
前回の解答例の改良に取り組みましょう。

解答例の改良例



第3講第4話へ 第2話へ

講義トップへ

数学研究室に戻る