- 締切済み
VB6のIF文について教えてください
VB6でプログラムについて、みなさんアドバイスをいただけませんでしょうか? 現在、下記のような動作をするプログラムを作っていていますがうまくいきません。 テキストボックスに1~100までの数値を400個入力します。 ボタンを押してこのテキストボックスヘ数値を入力したとき、入力した数値が10未満の 場合はメッセージボックスで「NG」と表示。 それ以外は、メッセージボックスで「OK」と表示プログラムを作っています。 ※これは、テキストボックスに数値を入力して、改行を押した際に、毎回OK・NG判定を して表示する 今下記のように作っているのですが、苦戦しているのは、数値を入力して改行したときに 毎回メッセージボックスが出ず、エラーが出てしまいます。 下記プログラム文をどのように変更すれば、数値を入力して改行したときに毎回上記のよ うな判定できるようになるかご教示頂けませんでしょうか? みなさん教えてください。よろしくお願いします。 Private Sub Command1_Click() Dim moji As String moji = txtInputData.Text If moji > 10 Then Msgbox "NG" Else Msgbox "OK" End If End Sub
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- readme_eml
- ベストアンサー率33% (4/12)
ごめんなさい。 先の私の回答は間違っていました。 moji = Len(nputData.Text)
- readme_eml
- ベストアンサー率33% (4/12)
Dim moji As Long moji = Len(nputData.Text) でどうでしょうか?
- imogasi
- ベストアンサー率27% (4737/17069)
テキストボックスで入力されたデータは、数字であっても文字列です。テキストボックスの テキストに思いが至らないのかな。 それを直接数値の10と比較しているが、ごく初歩的な誤りです。 イメージ的には、テキストボックスの入力する数字文字列が、数値なら Dim moji as Integer などとし moji = Val(nputData.Text) として、If moji > 10 Thenとすること。 または,mojiのデータは String としたままで If moji > ”10” ThenとしてもOKでしょうが。 >テキストボックスに1~100までの数値を400個入力します。 フォームの?1個のテキストボックスに、取り換えひっかえ、400回入力するのか? その400個の数値はどうする(保存や受け渡しのこと)の?質問には聞いてないが、素人っぽいやり方ではないか。 エクセルのシートのセルにでも入力するのが自然ではないか。 エクセルなら、入力規則で入力データの中身を即時チェクし制限できるし、またエラーコメントも出せる。 VBA(VB6相当)も使える。いまさらVB6ではね。
- weavaest
- ベストアンサー率15% (157/1020)
文字列型の変数と数値を比較してますが、VB6ってこれ出来ましたっけ? Variant型なら大丈夫だったような気がしましたけど、うろ覚えです。 数値変換する関数があったともいますから、それで数値に変換すれば大丈夫な気がします。 ※大昔の記憶で回答してますので、全然違ってたらごめんなさい。