• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2010入力制御について)

VB2010入力制御について

このQ&Aのポイント
  • VB2010でテキストボックスの入力制御をする方法について教えてください。
  • 現在、数値以外の入力や不正な値が入った場合にエラーメッセージを表示するプログラムを作成していますが、一部のケースで正しく制御できていません。
  • IsNumeric関数を使用しているのですが、数字だけを認識してしまい、不正な値も計算結果として表示してしまいます。どのように修正すればよいでしょうか?

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

  • ベストアンサー
  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

despite0614様 はじめまして。 やはり細かく文字をチェックするのは正規表現が良いと思います。 If Not (System.Text.RegularExpressions.Regex.IsMatch _      (TextBox1.Text, "^[-+]?[0-9]+(\.[0-9]+$|$)")) Then   MsgBox("不正な値です", vbExclamation, "ERROR") End If または If Not (System.Text.RegularExpressions.Regex.IsMatch _      (TextBox1.Text, "^[-+]?\d+(\.\d+$|$)")) Then   MsgBox("不正な値です", vbExclamation, "ERROR") End If 文字のチェック内容を簡単に説明すると ・先頭は(+ または -) が「あるか」または「ないか」 ・次は必ず数字が1文字以上ある ・その後は  小数点があれば必ず1文字以上の数字がある または  何もない(文字が終わり) 正規表現を勉強すれば、入力文字を簡単に細かくチェックできます。 

despite0614
質問者

お礼

ご丁寧なご回答、感謝致します。 コピペしたら正常に動作しました。が、その意味についてはまだ理解していないので、これから「正規表現」について勉強したいと思います。 ありがとうございました。

その他の回答 (1)

  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

InStr 関数で何文字目に記号があるか確認されてはいかがでしょうか? 大幅な改良をするのでしたら、 KeyPressを使用するのもおすすめかな