入力条件に合ったプロシージャを表示させるには?

解決


からすもり  2010-10-29 18:55:22  No: 102638  IP: 192.*.*.*

こんばんは。

只今、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


と書いています。
問題点など、何かヒントをいただけたらと思います。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2010-10-29 19:06:05  No: 102639  IP: 192.*.*.*

こういうときには、
  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 という結果になってしまいます)

編集 削除
からすもり  2010-10-29 19:18:48  No: 102640  IP: 192.*.*.*

魔界の弁士様

早速ご回答有難うございます。
そうだったのですね!勉強になりました。

()をつけたら、しっかりと作動しました!
前回に引き続き、丁寧な説明有難うございます☆

助かりました。

編集 削除
魔界の仮面弁士  2010-10-29 19:20:14  No: 102641  IP: 192.*.*.*

こういうときには Case ステートメントが便利です。

  Select Case SubjectNumber
    Case 1, 5
      m1
    Case 2, 6
      m2
    Case 3, 7
      m3
    Case Else
      Debug.Print "想定外の値"
  End Select

編集 削除