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

解決


からすもり  2010-10-30 03:55:22  No: 102638

こんばんは。

只今、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-30 04:06:05  No: 102639

こういうときには、
  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-30 04:18:48  No: 102640

魔界の弁士様

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

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

助かりました。


魔界の仮面弁士  2010-10-30 04:20:14  No: 102641

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加