第6講 同じことの横縦の繰り返し(2次元ループ)
第7話 同じことの横縦の繰り返しによる成績一覧表マクロの改良

入門
成績一覧表マクロの改良例
Private Sub CommandButton1_Click()
  Cells(6, 2) = "出席番号"
  Cells(6, 3) = "国語"
  Cells(6, 4) = "社会"
  Cells(6, 5) = "数学"
  Cells(6, 6) = "理科"
  Cells(6, 7) = "英語"
  Cells(6, 8) = "合計"
  Cells(6, 9) = "平均"
  Cells(6, 10) = "評価"
  Dim i As Byte, j As Byte, w As Integer
  For i = 0 To 9
    Cells(7 + i, 2) = i + 1
    For j = 0 To 4
      Cells(7 + i, 3 + j) = Int(100 * Rnd())
    Next
  Next
  For i = 0 To 4
    w = 0
    For j = 0 To 9
      w = w + Cells(7 + j, 3 + i)
    Next
    Cells(17, 3 + i) = w
    Cells(18, 3 + i) = w / 10
    If w / 10 >= 50 Then
      Cells(19, 3 + i) = "合格"
    Else
      Cells(19, 3 + i) = "不合格"
    End If
  Next
  For i = 0 To 9
    w = 0
    For j = 0 To 4
      w = w + Cells(7 + i, 3 + j)
    Next
    Cells(7 + i, 8) = w
    Cells(7 + i, 9) = w / 5
    If w / 5 >= 50 Then
      Cells(7 + i, 10) = "合格"
    Else
      Cells(7 + i, 10) = "不合格"
    End If
  Next
  
  w = 0
  For i = 1 To 10
    w = w + Cells(6 + i, 8)
  Next
  Cells(17, 8) = w
  Cells(18, 8) = w / 10
  Dim v As Single
  v = 0
  For i = 1 To 10
    v = v + Cells(6 + i, 9)
  Next
  Cells(17, 9) = v
  Cells(18, 9) = v / 10
  Cells(17, 2) = "合計"
  Cells(18, 2) = "平均"
  Cells(19, 2) = "評価"
End Sub
(参考ファイル 成績一覧表同じことの横縦の繰り返しによる改良版マクロ

次話の課題です。
さらに、このマクロを改良して、
3段階評価、4段階評価、5段階評価を加えましょう。
段階の区切りとコメントは皆さんにお任せしますが、
ランダムなデータの5教科平均になっていますので、
条件を90以上などとするとほとんど出現しませんので、
基準をうまく調整してみてください。
2013
もちろん、プログラムの文章だけでなく、シート側の変更も必要です。
列の幅を広げるにはvba
広げたい列を範囲指定しておいて、境界線のところをドラッグすればできます。


第6話へ 第8話へ

トップ

vc++講義へ

初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
vb講義へ
VB講義基礎へ
初心者のためのJava 入門 基礎から応用まで
数学研究室に戻る