こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2016-03-12 18:22:39

QNo.9141999

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

ごめんなさい。

先の私の回答は間違っていました。
moji = Len(nputData.Text)

投稿日時 - 2016-03-22 21:35:45

ANo.3

Dim moji As Long
moji = Len(nputData.Text) でどうでしょうか?

投稿日時 - 2016-03-21 18:26:22

ANo.2

テキストボックスで入力されたデータは、数字であっても文字列です。テキストボックスの
テキストに思いが至らないのかな。
それを直接数値の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ではね。
  

投稿日時 - 2016-03-12 20:32:38

ANo.1

文字列型の変数と数値を比較してますが、VB6ってこれ出来ましたっけ?
Variant型なら大丈夫だったような気がしましたけど、うろ覚えです。
数値変換する関数があったともいますから、それで数値に変換すれば大丈夫な気がします。

※大昔の記憶で回答してますので、全然違ってたらごめんなさい。

投稿日時 - 2016-03-12 18:40:53

あなたにオススメの質問