|
neptune 様
お世話になります.
AccessVBAについては,IfやSelectCaseの構文を改変した程度として
捉えてください.
あと,補足になります.
朝昼夜の後,列の追加で合計点を出します.
この辺は,VBAのfanctionを当てることになるかとおもいますが…
悩みの部分は2つ(現在までに)
1.行が変わったときにそれぞれセルを変更しなければならないため,
対応が出来ない(後の私が考えた構文を参照してください)
2.毎回,セルを固定した条件文となり,ダラダラと続いて
スマートな構文にならない.
とりあえず,ダラダラとなってしまう構文ですが.
(知識が少ないため,変数や型の宣言などで間違いがあるかと思いますが,
お許しください)
--------------------------------------------
Dim b1 As Integer
Dim b2 As Integer
Dim b3 As Integer
Dim l1 As Integer
Dim l2 As Integer
Dim l3 As Integer
Dim d1 As Integer
Dim d2 As Integer
Dim d3 As Integer
'朝食を食べる(回答が1)なら10,食べない(回答が2)なら0
If Cells(3, 2) = 1 Then
b1 = 10
ElseIf Cells(3, 2) = 2 Then
b1 = 0
Else
b1 = Null
End If
'朝食を2人以上で食べるなら10,1人なら0
If Cells(3, 3) = 1 Then
b2 = 0
ElseIf Cells(3, 3) >= 2 Then
b2 = 10
Else
b2 = Null
End If
'時間が20分以上なら10,10分以上20分未満なら5,10分未満なら0
Select Case Cells(3, 4)
Case Is >= 20
b3 = 10
Case Is < 20
b3 = 5
Case Is < 10
b3 = 0
Case Else
b3 = Null
End Select
'この後に,l1 l2 l3とd1 d2 d3の構文が続きます
'(省略)
'合計点を求めます
Dim total As Integer
Dim totalB As Integer
Dim totalL As Integer
Dim totalD As Integer
totalB = b1 + b2 + b3
totalL = l1 + l2 + l3
totalD = d1 + d2 + d3
total = totalB + totalL + totalD
--------------------------------------------
こんなイメージです.
b1〜b3とl1〜l3,d1〜d3が同じ規則での処理となるため,
この辺がスッキリ出来たらという思いと,対象者が変わったときにも
対応できるような状態にしたいと考えております.
不備な点がありましたら,ご指摘ください.
|
|