こんばんは。
只今、VB6.0で入力条件にあったものを表示するプログラムを作成しています。
下記のようなプログラムを書いたのですが、subjectnumberに1、2を入力しても、subjectnumberが3か7の場合の表示しかされません。
下記にプログラムを載せます。(t1をクリック→t1を消す→入力したsubjectnumberにより、それぞれのプロシージャを表示)
Private Sub t1_click()
t1.visible = false
If SubjectNumber = (1) Or (5) Then
m1 ←プロシージャ
End If
If SubjectNumber = (2) Or (6) Then
m2 ←プロシージャ
End If
If SubjectNumber = (3) Or (7) Then
m3 ←プロシージャ
End If
End Sub
と書いています。
問題点など、何かヒントをいただけたらと思います。
よろしくお願いします。
こういうときには、
If A = 5 Or 7 Then
ではなく、
If A = 5 Or A = 7 Then
と記述する必要があります。括弧を使って、
If (A = 5) Or (A = 7) Then
と書いても OK です。
「If A = 5 Or 7 Then」と書いた場合には、
「If CBool(CInt(A = 5) Or 7) Then」という意味に
解釈されてしまうので注意してください。
(この場合、A の値に関わらず True という結果になってしまいます)
魔界の弁士様
早速ご回答有難うございます。
そうだったのですね!勉強になりました。
()をつけたら、しっかりと作動しました!
前回に引き続き、丁寧な説明有難うございます☆
助かりました。
こういうときには Case ステートメントが便利です。
Select Case SubjectNumber
Case 1, 5
m1
Case 2, 6
m2
Case 3, 7
m3
Case Else
Debug.Print "想定外の値"
End Select