第13講 3次元ループと3次元配列による成績一覧表の高度化

第6話 グローバル3次元配列利用による年間処理

解答例
Dim h(2, 39, 4) As Byte
Private Sub CommandButton1_Click()
          ・
          ・
Private Sub CommandButton3_Click()

   Dim i As Byte, j As Byte

   For i = 1 To 40
     For j = 1 To 5
       h(0, i - 1, j - 1) = Int(100 * Rnd())
       Cells(6 + i, 1 + j) = h(0, i - 1, j - 1)
     Next
   Next

End Sub
          ・
          ・
Private Sub CommandButton6_Click()

  Dim i As Byte, j As Byte

  For i = 1 To 40
    For j = 1 To 5
      h(1, i - 1, j - 1) = Int(100 * Rnd())
      Cells(53 + i, 1 + j) = h(1, i - 1, j - 1)
    Next
  Next
  Cells(71, 1).Select

End Sub
          ・
          ・
Private Sub CommandButton9_Click()

  Dim i As Byte, j As Byte

  For i = 1 To 40
    For j = 1 To 5
      h(2, i - 1, j - 1) = Int(100 * Rnd())
      Cells(100 + i, 1 + j) = h(2, i - 1, j - 1)
    Next
  Next
  Cells(117, 1).Select

End Sub
          ・
          ・
Private Sub CommandButton10_Click()

  ds '年間平均
  f41 '生徒の合計点・平均点の計算
  f42 '各教科等の合計点・平均点の計算
  f43 '各生徒の合否判定
  f44 '各生徒の講評
  f45 '各生徒の最高点の算出
  f46 '各生徒の最低点の算
  f47 '各教科と合計・平均の最高点の算出
  f48 '各教科と合計・平均の最低点の算出
  Cells(162, 1).Select

End Sub

Sub ds()

  Dim i As Byte, j As Byte, k As Byte, w As Single
  
  For i = 1 To 40
    For j = 1 To 5
      w = 0
      For k = 1 To 3
        w = w + h(k - 1, i - 1, j - 1)
      Next
      Cells(147 + i, 1 + j) = w / 3
    Next
  Next

End Sub

          ・
          ・
省略部分は同じ。

参考ファイル成績一覧表マクロ(シート1枚版)完成版2

第5話へ 第7話へ

004
  


VBA講義第1部へ
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ

数学研究室に戻る