|
横から失礼して。
セルB3〜J3に値があるとします。
二次元配列を用いてみました。
Sub try()
Dim r As Range
Dim i As Integer, j As Integer
Dim total(1 To 3, 1 To 3) As Variant
i = 1 ' 1:朝食 2:昼食 3:夕食
For Each r In Range("B3,E3,H3")
j = r.Value ' 質問1
total(i, 1) = IIf(j = 1, 10, IIf(j = 2, 0, Empty))
j = r.Offset(, 1).Value ' 質問2
total(i, 2) = IIf(j = 1, 0, IIf(j >= 2, 10, Empty))
j = r.Offset(, 2).Value ' 質問3
total(i, 3) = IIf(j >= 20, 10, IIf(j >= 10, 5, IIf(j < 10, 0, Empty)))
i = i + 1
Next
'----------結果出力----------------------------
Dim m As Integer, v As Variant
v = Array("", "朝食", "昼食", "夕食")
For m = 1 To 3
MsgBox v(m) & "の質問1は " & total(m, 1) & vbLf & _
v(m) & "の質問2は " & total(m, 2) & vbLf & _
v(m) & "の質問3は " & total(m, 3) & vbLf & _
v(m) & "の質問合計は " & total(m, 1) + total(m, 2) + total(m, 3)
Next
End Sub
ご参考になれば。
|
|