VBA-if文とselect文の条件分岐
いやなんというかなんでなのか理解できず…
例えば
適当な分ける基準を
score(3)as doubleで宣言しといてその中に
0.463287 |
1.254333 |
2.04538 |
2.836427 |
みたいな値を格納して
任意のセルcells(i,j)と比較して、分けた結果の値1,2,3,4,5(=score(3)以上)を隣の列に付与したい場合に
x = Cells(i, col)
Select Case x
Case Is < score(0)
Cells(i, 13) = 1
Case Is < score(1)
Cells(i, 13) = 2
Case Is < score(2)
Cells(i, 13) = 3
Case Is < score(3)
Cells(i, 13) = 4
Case Else
Cells(i, 13) = 5
End Select
みたいに書くか
If (Cells(i, col) < score(0)) Then
Cells(i, 12) = 1
ElseIf (Cells(i, col) < score(1)) Then
Cells(i, 12) = 2
ElseIf (Cells(i, col) < score(2)) Then
Cells(i, 12) = 3
ElseIf (Cells(i, col) < score(3)) Then
Cells(i, 12) = 4
Else
Cells(i, 12) = 5
End If
と書けば同じ結果が出力されるはずで
で、まあ、普通に考えて、if文いっぱいはアレなのでSELECT文書いてたんだけど
どうも出力結果が変で
1 |
0 |
1 |
1 |
3 |
という列を投げると、
2 |
1 |
2 |
2 |
5 |
が返ってくるはずなのに
SELECT文だと
3 |
2 |
3 |
3 |
5 |
が返ってきて、if文だと上の正解のが返ってくるという謎な状態になっており
原因がわからない…
(ので今のところ全部if文に変えて行っているところで…だれか分かれば教えていただきたい…)