- ベストアンサー
数字以外の入力をエラーにするには?
分からないのでよろしくお願いします。 テキストボックスに一つでも数字以外の文字を入力したらエラーメッセージを出すようにしたいのです。小数点も不可にしたいです。 つまり、整数だけを許可したいです。 Dim suuji As string suuji= text1.Text If Not IsNumeric(CStr(suuji.ToString)) Then MsgBox("入力値が数字ではありません", MsgBoxStyle.Critical, "エラー") Exit Sub End If こうしたのですが、小数点は通ってしまいます。 どうすればいいかご存知の方、教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
' 数字か? If IsNumeric(CStr(suuji.ToString)) Then ' ピリオドが含まれるか? If InStr(suuji,".") > 0 then MsgBox("入力値が数字ではありません", MsgBoxStyle.Critical, "エラー") End If Exit Sub
その他の回答 (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 変数の方を間違えていました。
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とある程度の互換性を保つために用意されているので、使用するべきではない、という話を聞いたことがあります。
お礼
そうなんですか。 IsNumericは使用すべきではないのですか。 初めて知りました。 こちらのやり方も参考になり、大変勉強になりました。 ありがとうございました。
お礼
ありがとうございました。 こちらの方法でさせていただいたら、 今まで対処の分からなかった小数点をエラーにすることが出来ました。