第3講 For文の学習
第6話 2次元ループによる成績一覧表の完成
第5話問題解答例
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, w As Single
'生徒の合計点・平均点の計算
For i = 1 To 40
w = 0
For j = 1 To 5
w = w + Cells(6 + i, 1 + j)
Next
Cells(6 + i, 7) = w
Cells(6 + i, 8) = w / 5
Next
'各教科等の合計点・平均点の計算
For i = 1 To 7
w = 0
For j = 1 To 40
w = w + Cells(6 + j, 1 + i)
Next
Cells(47, 1 + i) = w
Cells(48, 1 + i) = w / 40
Next
End Sub
この解答例は、第4話解答例の
Private Sub CommandButton1_Click()
Dim i As Byte, j As Byte, w As Single
'各生徒の合計・平均
For i = 1 To 2
w = 0
For j = 1 To 3
w = w + Cells(6 + i, 1 + j)
Next
Cells(6 + i, 5) = w
Cells(6 + i, 6) = w / 3
Next
'各教科の合計・平均
For i = 1 To 5
w = 0
For j = 1 To 2
w = w + Cells(6 + j, 1 + i)
Next
Cells(9, 1 + i) = w
Cells(10, 1 + i) = w / 2
Next
End Sub
のピンクの数字だけ変更しています。
つまり、第5話問題は第4話問題ができれば、簡単にできるわけです。
第5話問題解答例と第4話問題解答例は本質的に同じであるわけです。
さて、皆さん完成してものを『成績一覧表完成版』というファイル名で保存しましょう。
(あるいは、成績一覧表完成版をダウンロードしていただいて、『成績一覧表完成版』の名前で保存されても結構です。)
さて、成績一覧表完成版は最初からデータが与えられていました。
これを改良して、データの作成も自動的に行わせるようにしましょう。
データ作成ボタンをつくります。そして、実行と消去のボタンの名称をそれぞれ、成績処理、データ消去に変更します。
まず、成績一覧表完成版を『成績一覧表改良版』の名前で保存し直してください。
その上で、データの部分を消して空欄にしてください。
上書き保存をかけた上で、いったんエクセルを閉じましょう。
再度エクセルを起動して、『成績一覧表改良版』を開いてください。ただし、その際に
オプションをクリックし、
不明なコンテンツから保護する(推奨)を選んでください。
そして、Alt+F11でVisual Basicを起動し、
を押してください。
がでてきたらOKをクリックします。
Alt+F11でエクセルに戻ってください。すると、例えば実行ボタンをクリックすると、
となります。この状態だとドラッグで動かせます。実行と消去をドラッグで動かして、
開発タブをクリックして、
挿入をクリックして、データ作成ボタンを作ってください。
データ作成ボタンが作れたら、実行を右クリックしてプロパティ→Captionから実行の名称を成績処理に変更してください。
同様に、消去もデータ消去に変更します。
再度、上書きしていったんエクセルを閉じます。
再び『成績一覧表改良版』開きますが今度は、コンテンツを有効にしてください。
そして、Alt+F11をします。
今回は、まず
Private Sub CommandButton2_Click()
Range("B47:H48").Select
Selection.ClearContents
Range("G7:H46").Select
Selection.ClearContents
Cells(1, 1).Select
End Sub
の部分を変更していただきます。
データ消去で、赤い枠のデータがすべて消えるようにしてください。
第5話へ 第7話へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
数学研究室に戻る