「教えて!ピックアップ」リリース!

分からないのでよろしくお願いします。

テキストボックスに一つでも数字以外の文字を入力したらエラーメッセージを出すようにしたいのです。小数点も不可にしたいです。
つまり、整数だけを許可したいです。
Dim suuji As string
suuji= text1.Text
If Not IsNumeric(CStr(suuji.ToString)) Then
MsgBox("入力値が数字ではありません", MsgBoxStyle.Critical, "エラー")
Exit Sub
End If
こうしたのですが、小数点は通ってしまいます。
どうすればいいかご存知の方、教えてください。

A 回答 (4件)

' 数字か?


If IsNumeric(CStr(suuji.ToString)) Then
 ' ピリオドが含まれるか?
 If InStr(suuji,".") > 0 then
  MsgBox("入力値が数字ではありません", MsgBoxStyle.Critical, "エラー")
 End If
Exit Sub
    • good
    • 2
この回答へのお礼

ありがとうございました。
こちらの方法でさせていただいたら、
今まで対処の分からなかった小数点をエラーにすることが出来ました。

お礼日時:2009/01/06 19:56

だぁぁ、誤字です。



方→型


自分も整数値入力の処理を考えないとな~
と、思っていたところにこの質問がありましのでちょうどいいタイミングでした。
「きっかけ」を作ってくれてありがとうございます。
    • good
    • 0
この回答へのお礼

ごきっかけとなって本当に良かったです。
こちらこそ一生懸命にお答え頂き大変嬉しかったです。
どうもありがとうございました。

お礼日時:2009/01/06 20:00

Dim x As Boolean



If (Integer.TryParse(Me.TextBox1.Text, x)) Then
  MessageBox.Show("Value is " + Me.TextBox1.Text)
Else
  MessageBox.Show("Not Integer")
End If

変数の方を間違えていました。
    • good
    • 0

Dim x As Integer



'~.TextはIntegerに変換できるか?
If (Integer.TryParse(Me.TextBox1.Text, x)) Then
  MessageBox.Show("Integer")
Else
  MessageBox.Show("Not Integer")
End If

このソースはインデントを表わすため全角スペースが混じっています。
あと、Ifの無駄なかっこは普段C#を使っているための癖です。


【余計なおせっかい】
IsNumericはMicrosoft.VisualBasicの名前空間に属します。
この名前空間は過去のVisual Basicとある程度の互換性を保つために用意されているので、使用するべきではない、という話を聞いたことがあります。
    • good
    • 0
この回答へのお礼

そうなんですか。
IsNumericは使用すべきではないのですか。
初めて知りました。
こちらのやり方も参考になり、大変勉強になりました。
ありがとうございました。

お礼日時:2009/01/06 20:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング