第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
VBA
Private Sub CommandButton2_Click()
  Range("A13").Select
  Selection.ClearContents
  Range("A1").Select
End Sub
魔方陣

参考ファイル

解説
コンピュータの動きを追ってみましょう。
コンピュータの動きを1つ1つ追うことをトレースといいましたね。
1行目から最後までをトレースしてみましょう。
トレースする際
入門

VBA
の行番号と列番号に注目してください。
列番号
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)
入門
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)
入門
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)
入門
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)
入門
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)
入門
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)
入門
A12

  すなわち
    w ← 75 + 36
  によってwは111に変わります。
以上でループ処理が終わり
  Cells(13, 1) = wCells(13, 1)は13行目1列目ですからA13)
によって、
数独
魔方陣
となり列の合計を算出することと合計を表示することに成功しました。

では、さらに改良して
実行ボタンを押すと
列合計
のようにすべての列の合計を出し、
消去ボタンを押すと
魔方陣
消えるようにしてください。

7話へ 第9話へ


トップ

初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門

数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ