CDの保有枚数を教えてください

VBAについて質問です。

http://excelvba.pc-users.net/fol6/6_2.html

Sub test()
Dim intPoint As Integer
intPoint = InputBox("点数を入力してください")

Select Case intPoint
Case Is >= 80
MsgBox "優です。"
Case Is >= 70
MsgBox "良です。"
Case Is >= 60
MsgBox "可です。"
Case Else
MsgBox "再テストです。"
End Select
End Sub
は、
なぜ
Sub test2()
Dim intPoint As Integer
intPoint = 75

Select Case intPoint
Case intPoint >= 80
MsgBox "優です。"
Case intPoint >= 70
MsgBox "良です。"
Case intPoint >= 60
MsgBox "可です。"
Case Else
MsgBox "再テストです。"
End Select
End Sub

では、だめなのでしょうか?

test2を実行すると、
Case Elseの
MsgBox "再テストです。"
になってしまいます。
本当は、"良です。"が正しいのに。

testをF8でステップインしながら実行した時に、
「Case Is >= 80」
の来た時に、isにカーソルをあてても、InputBoxで入力した数値が表示されません。

なぜ、この場合、Case intPoint >= 80
ではダメなのか理由をご教授ください。ご回答よろしくお願いします。

A 回答 (3件)

Select Case intPoint


Case intPoint >= 80
MsgBox "優です。"
Case intPoint >= 70
MsgBox "良です。"
Case intPoint >= 60
MsgBox "可です。"
Case Else
MsgBox "再テストです。"
End Select

Case intPoint >= 80のような書き方をするときは

Select Case true
Case intPoint >= 80
・・・
End Select
とします。

以上参考まで。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2012/10/17 00:15

>なぜ、この場合、Case intPoint >= 80ではダメなのか


 ⇒intPoint >= xxの結果(True、False)との比較になるからです。
  
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2012/10/17 00:15

たとえば、「Case intPoint >= 80」は、


intPointが10の場合、「Case 10 >= 80」→「Case False」→「Case 0」となるので、成立しません。
以下同様に、全て成立しないので、Case Elseに行きます。
intPointが0なら優になります。
(なぜなら「Case 0 >= 80」→「Case False」→「Case 0」→0と0で等値が成立するので。)

詳しくは、VBAのヘルプをどうぞ。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

お礼日時:2012/10/17 00:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!