第5講 成績個票印刷
第1話 個票印刷プログラムソース
まず下のプログラムをダブルクリックで開いてください。
個票印刷プログラム
(このプログラムは実行するとA4で14枚ほど印刷してしまいますのでご注意してください。)
プログラムは、
1学期中間・1学期期末・2学期中間・2学期期末・学年末テスト
のタブに入っていて、
データ処理を押すと各学期のデータ処理(合計や平均など)をすると同時に、
学年総合のデータ処理を行い、
さらに学年総合の成績を個票に印刷するプログラムです。
データ処理までは、
講義基礎編の
第12講 配列その2
第1話 3次元配列
第2話 第1話プログラムの改良
で既習済みです。
再度、そちらをごらんになって復習して頂ければと思います。
ここで加えられた新しい内容は、個票印刷です。
プログラムソースを見てみましょう
Sub kohyouinsatu()
Dim i As Integer
Dim j As Integer
For i = 1 To 14
For j = 1 To 3
If 3 * (i - 1) + j < 41 Then
Worksheets("個票").Cells(1 + 18 * (j - 1), 2) = 3 * (i
- 1) + j
Else
Worksheets("個票").Cells(1 + 18 * (j - 1), 2) = ""
End If
For k = 1 To 7
If 3 * (i - 1) + j < 41 Then
Worksheets("個票").Cells(3 + 18 * (j - 1), 1 + k) =
Worksheets("1学期中間").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(4 + 18 * (j - 1), 1 + k) =
Worksheets("1学期中間").Cells(48, 1 + k)
Worksheets("個票").Cells(5 + 18 * (j - 1), 1 + k) =
Worksheets("1学期期末").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(6 + 18 * (j - 1), 1 + k) =
Worksheets("1学期期末").Cells(48, 1 + k)
Worksheets("個票").Cells(7 + 18 * (j - 1), 1 + k) =
Worksheets("2学期中間").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(8 + 18 * (j - 1), 1 + k) =
Worksheets("2学期中間").Cells(48, 1 + k)
Worksheets("個票").Cells(9 + 18 * (j - 1), 1 + k) =
Worksheets("2学期期末").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(10 + 18 * (j - 1), 1 + k)
= Worksheets("2学期期末").Cells(48, 1 + k)
Worksheets("個票").Cells(11 + 18 * (j - 1), 1 + k)
= Worksheets("学期末テスト").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(12 + 18 * (j - 1), 1 + k)
= Worksheets("学期末テスト").Cells(48, 1 + k)
Worksheets("個票").Cells(13 + 18 * (j - 1), 1 + k)
= Worksheets("学年総合").Cells(6 + 3 * (i - 1) + j, 1 + k)
Worksheets("個票").Cells(14 + 18 * (j - 1), 1 + k)
= Worksheets("学年総合").Cells(48, 1 + k)
Else
Worksheets("個票").Cells(3 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(4 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(5 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(6 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(7 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(8 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(9 + 18 * (j - 1), 1 + k) =
""
Worksheets("個票").Cells(10 + 18 * (j - 1), 1 + k)
= ""
Worksheets("個票").Cells(11 + 18 * (j - 1), 1 + k)
= ""
Worksheets("個票").Cells(12 + 18 * (j - 1), 1 + k)
= ""
Worksheets("個票").Cells(13 + 18 * (j - 1), 1 + k)
= ""
Worksheets("個票").Cells(14 + 18 * (j - 1), 1 + k)
= ""
End If
Next
Next
Sheets("個票").Select
ActiveWindow.SmallScroll Down:=-8
Range("A1:I53").Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$I$53"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next
Sheets("学年総合").Select
Range("A1").Select
End Sub
解説は次話で。
第4講第6話へ 第5講第2話へ