• ベストアンサー

数字以外の入力をエラーにするには?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • mindatg
  • ベストアンサー率48% (110/227)
回答No.1

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

jmwp
質問者

お礼

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

その他の回答 (3)

noname#76085
noname#76085
回答No.4

だぁぁ、誤字です。 方→型 自分も整数値入力の処理を考えないとな~ と、思っていたところにこの質問がありましのでちょうどいいタイミングでした。 「きっかけ」を作ってくれてありがとうございます。

jmwp
質問者

お礼

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

noname#76085
noname#76085
回答No.3

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 変数の方を間違えていました。

noname#76085
noname#76085
回答No.2

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とある程度の互換性を保つために用意されているので、使用するべきではない、という話を聞いたことがあります。

jmwp
質問者

お礼

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

関連するQ&A