【´・ω・`】:いよいよ、今回が最終回だ。AK3に授業日数を
入れる仕様になっているので注意してくれ。下が出欠欄に
関するコードだ。
%授業日数=Range("AK3")
For %i = 8 To 52
!!出席すべき日数
!!=授業日数-出停・忌引の日数
Cells(%i, 33)=%授業日数-Cells(%i, 32)
!!出席日数
!!=出席すべき日数-欠席日数
Cells(%i, 35)=Cells(%i, 33)-Cells(%i, 34)
Next
【´・ω・`】:コメントを見れば解説は要らないと思う。
一応、成績一覧表のコード全てを掲載しておく。
!!科目別成績
For %列 = 4 TO 26 Step 2
%科目=0
%科目受験者=0
%科目平均=0
For %行 = 8 To 52
%科目 = %科目 + Cells(%行, %列)
If Not IsBlank(Cells(%行, %列)) Then
%科目受験者 = %科目受験者 + 1
End If
Next
If %科目受験者>0 Then
%科目平均= %科目/%科目受験者
End If
Cells(53,%列)=%科目
Cells(54,%列)=%科目受験者
Cells(55,%列)=%科目平均
Next
!!個人別成績
for %j =8 To 52
%得点=0
%科目数=0
for %i = 4 To 26 Step 2
%得点=%得点+Cells(%j, %i)
If Not IsBlank(Cells(%j, %i)) Then
%科目数=%科目数+1
End If
next
If %科目数>0 Then
%平均=%得点/%科目数
End If
Cells(%j, 29)=%得点
Cells(%j, 30)=%平均
next
For %i = 8 To 52
Cells(%i, 31)= Rank(Cells(%i, 29),Range("AC8:AC52"))
next
!!出欠席
%授業日数=Range("AK3")
For %i = 8 To 52
!!出席すべき日数
!!=授業日数-出停・忌引の日数
Cells(%i, 33)=%授業日数-Cells(%i, 32)
!!出席日数
!!=出席すべき日数-欠席日数
Cells(%i, 35)=Cells(%i, 33)-Cells(%i, 34)
Next
Function Rank(%個人得点,%母集団) As Integer
%順位=1
For %i = 1 To Size(%母集団)
If %母集団(%i) > %個人得点 Then
%順位=%順位+1
End If
Next
Rank=%順位
End Function
【´・ω・`】:最後に完成見本ファイルを用意したのでDLして
参考にしてくれ。
コメント