第5講 For文(繰り返し処理)を理解しよう
第8話 A列合計プログラミング解答例
前話問題解答例
Private Sub CommandButton1_Click()
Dim w As Byte, i As Byte
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 1)
Next
Cells(13, 1) = w
End Sub
Private Sub CommandButton2_Click()
Range("A13").Select
Selection.ClearContents
Range("A1").Select
End Sub
参考ファイル
解説
コンピュータの動きを追ってみましょう。
コンピュータの動きを1つ1つ追うことをトレースといいましたね。
1行目から最後までをトレースしてみましょう。
トレースする際
の行番号と列番号に注目してください。
列番号AはCells(*, 1)でしたね。
コード再掲
Private Sub CommandButton1_Click()
Dim w As Byte, i As Byte
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 1)
Next
Cells(13, 1) = w
End Sub
最初
w = 0
でwは0です。
そして、For文の1回目のループになります。
i = 0のとき (iは0から始まりますので、ループ回数より一つ小さくなります。)
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 0, 1)ですから
w = w + Cells(7, 1)(これは7行目1列目ですからA7)
すなわち
w ← 0 + 1
によってwは1に変わります。
NextによってFor文の2回目のループになります。
i = 1のとき
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 1, 1)ですから
w = w + Cells(8, 1)(これは8行目1列目ですからA8)
すなわち
w ← 1 + 31
によってwは32に変わります。
NextによってFor文の3回目のループになります。
i = 2のとき
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 2, 1)ですから
w = w + Cells(9, 1)(これは9行目1列目ですからA9)
すなわち
w ← 32 + 18
によってwは50に変わります。
NextによってFor文の4回目のループになります。
i = 3のとき
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 3, 1)ですから
w = w + Cells(10, 1)(これは10行目1列目ですからA10)
すなわち
w ← 50 + 19
によってwは69に変わります。
NextによってFor文の5回目のループになります。
i = 4のとき
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 4, 1)ですから
w = w + Cells(11, 1)(これは11行目1列目ですからA11)
すなわち
w ← 69 + 6
によってwは75に変わります。
NextによってFor文の6回目のループになります。
i = 5のとき
w = w + Cells(7 + i, 1)
は
w = w + Cells(7 + 5, 1)ですから
w = w + Cells(12, 1)(これは12行目1列目ですからA12)
すなわち
w ← 75 + 36
によってwは111に変わります。
以上でループ処理が終わり
Cells(13, 1) = w(Cells(13, 1)は13行目1列目ですからA13)
によって、
となり列の合計を算出することと合計を表示することに成功しました。
では、さらに改良して
実行ボタンを押すと
のようにすべての列の合計を出し、
消去ボタンを押すと
消えるようにしてください。
初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門
数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ