第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話へ


VB入門講義応用編トップへ

VB入門講義トップへ