お世話になります。
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
>10000以上だとオーバーフローしてしまいます。
という現状観察と
>if〜then〜endif構文の質問です
このような問題点抽出は矛盾していませんか?
問題を解決する第一歩は「問題点はなにか?」をまずつかむことです。
たしかに題名と内容が乖離しているのはもちろん問題ですが・・
型宣言はどうなっていますか?
「数量」は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
テキストエディタで書いたのでチェックはしていません。
あしからず。
If (Option1.Value = True) And (数量 = 10000 <= 100000) Then
そもそも構文が変
If (Option1.Value = True) And (数量 <= 100000) Then
でなくて?
管理者様、皆さん、有難う御座いました。
しんごさんとやじゅさんのコードをヒントに、コードを
作り直したところ、この件が解決いたしました。
体調が悪く、ご返事が遅れてしまいましたことを
お詫びいたします。
ツイート | ![]() |