第5講 For文(繰り返し処理)を理解しよう
第10話 列・行合計プログラミング解答例
前話問題解答例
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
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 2)
Next
Cells(13, 2) = w
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 3)
Next
Cells(13, 3) = w
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 4)
Next
Cells(13, 4) = w
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 5)
Next
Cells(13, 5) = w
w = 0
For i = 0 To 5
w = w + Cells(7 + i, 6)
Next
Cells(13, 6) = w
w = 0
For i = 0 To 5
w = w + Cells(7, 1 + i)
Next
Cells(7, 7) = w
w = 0
For i = 0 To 5
w = w + Cells(8, 1 + i)
Next
Cells(8, 7) = w
w = 0
For i = 0 To 5
w = w + Cells(9, 1 + i)
Next
Cells(9, 7) = w
w = 0
For i = 0 To 5
w = w + Cells(10, 1 + i)
Next
Cells(10, 7) = w
w = 0
For i = 0 To 5
w = w + Cells(11, 1 + i)
Next
Cells(11, 7) = w
w = 0
For i = 0 To 5
w = w + Cells(12, 1 + i)
Next
Cells(12, 7) = w
End Sub
上のプログラムは、もちろん良いプログラムとはいえません。
理由はお分かりですね。
同じことをなんかも繰り返しているからです。
もちろん、これを解消する方法はあります。
その方法は、For文を入れ子式に2回使う方法です。
入れ子式に2回使う方法を2次元ループといいます。
2次元ループは後の講の課題ですので、
しばらくは、このできの悪いコードで我慢するしかありません。
Private Sub CommandButton2_Click()
Range("A13:F13").Select
Selection.ClearContents
Range("G7:G12").Select
Selection.ClearContents
Range("A1").Select
End Sub
参考ファイル
すべての列とすべての行の合計が111でした。
この方陣は魔方陣の可能性が高いことが分かりました。
さて、対角線合計はどうでしょうか。
コードを改良して、実行ボタンを押すと
消去ボタンを押すと
と元に戻るようにしましょう。
参考ファイルは、文字や数字の配置が中央揃えになっているので、
『右下がり対角線合計』の表示の位置を工夫してください。
尚、右上がり対角線合計は難問ですので、
ヒントを一つだけ。
それはCellsにおいて引き算を使うということです。
初心者のためのc++ vc++ c言語 入門 基礎から応用までへ
初心者のための excel 2007 2010 2013 vba 入門 基礎から応用まで
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義トップへ
VB講義基礎へ
専門用語なしのC++入門へ
専門用語なしのJava入門へ
専門用語なしのVBA入門
数独のページ
魔方陣のページ
数学研究室に戻る
本サイトトップへ