■ if〜then〜endif構文の質問です

[Visual Basic 初心者掲示板] [過去ログの一覧]


regedit 2008/02/02(土) 23:48:48
お世話になります。
Winxp、VB.6です。

オプションボタンの二つを使い分けて、同時に数字を入れて
一定の数値を導き出すコードの質問です。
取り合えず、書いてみたのですが、10000以上だとオーバーフロー
してしまいます。またうまく結論が導きれないようです。
どこを直したら良いのでしょうか?

数量 = Val(Text1.Text)
  
  
  
  If (Option1.Value = True) And (数量 < 10000) Then
  
  合計 = "0"
  
  MsgBox (合計), , "合計"
  
  End If
  
  If (Option1.Value = True) And (数量 = 10000 <= 100000) Then
                      ↑
                 このへんがうまくいかないようです。
  合計 = "200"
  
 
  MsgBox (合計), , "合計"
  
    End If

ぶっきい 2008/02/03(日) 10:53:06
>10000以上だとオーバーフローしてしまいます。

という現状観察と

>if〜then〜endif構文の質問です

このような問題点抽出は矛盾していませんか?

問題を解決する第一歩は「問題点はなにか?」をまずつかむことです。

しんご 2008/02/03(日) 12:26:22 <中級者>
たしかに題名と内容が乖離しているのはもちろん問題ですが・・

型宣言はどうなっていますか?
「数量」はInteger型?Long型?

↓こんな感じのプログラムでいかがでしょうか?

Dim n     as Long
Dim RetF  as Boolean
Dim Mess  as String

n = Val(Text1.Text)
RetF = Option1.Value

If RetF Then
  Select Case n
    Case Is < 10000: Mess = "0"
    Case 10000 to 100000: Mess = "200"
  End Select
  MsgBox Mess,,"合計"
End If 

テキストエディタで書いたのでチェックはしていません。
あしからず。

やじゅ 2008/02/03(日) 13:13:55 <上級者>
If (Option1.Value = True) And (数量 = 10000 <= 100000) Then
そもそも構文が変
If (Option1.Value = True) And (数量 <= 100000) Then
でなくて?

regedit 2008/02/18(月) 13:09:18
管理者様、皆さん、有難う御座いました。

しんごさんとやじゅさんのコードをヒントに、コードを
作り直したところ、この件が解決いたしました。

体調が悪く、ご返事が遅れてしまいましたことを
お詫びいたします。

毎週金曜日はポイント最大3倍!さらに4倍のチャンスも!

Programming Library