• 締切済み

入力値チェック

VBにて、テキストフィールドに入力した値を チェックするプログラムを作りたく、記載を致しました。 わからない点として、 (1) 値を入れ終わった直後に入力チェックが入るようにする コードをどうかけばいいのか? (2) 入力チェックは、"1~5"の値入力のみを受付ける。 それ以外は、"入力を受け付けない"というメッセージを 促し、テキストフィールドの値を空にする。 の2点です。 このチェック処理を作るための手順についてお伺いしたく 記載を致しました。 ご教授の程お願い致します。

みんなの回答

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.2

久しぶりすぎてVBがうまく書けない‥ ほんの一例を下記に示す。 Private Sub TextBox1_Leave(‥略‥) Handles TextBox1.Leave  If Not chkMoji(TextBox1.Text) Then   MsgBox("入力を受け付けない", MsgBoxStyle.Critical, "禁止文字チェック")   TextBox1.Text = ""  End If End Sub Private Function chkMoji(ByVal strMoji As String)  If Not Regex.IsMatch(strMoji, "^[1-5]$") Then   Return False  End If  Return True End Function ※ VB2005 正規表現を扱うRegexクラスの名前空間はSystem.Text.RegularExpressionsです

tkihara197
質問者

お礼

非常にためになる意見ありがとうございます。 早速ですが、利用させていただきたいと思います。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

VBのバージョンが何だか不明なので、具体的な記述はできませんが、 次のような理屈になると思います。 >値を入れ終わった直後に入力チェックが入るようにする 「値を入れ終わる」をどう定義するかです。私の感覚ではフォーカスを 失った(別のフィールドに移動した)時のイベントプロシージャで チェックをします。 >入力チェックは、"1~5"の値入力のみを受付ける コントロールのテキストプロパティで、入力値を受け取る。 If文で、入力値>="1" And 入力値<="5" を判断する。 これ以外ならメッセージボックスを表示して、コントロールの テキストプロパティに空文字列("")を代入する。 こんな感じでしょうか。

tkihara197
質問者

お礼

ロジックで作成するという点で理解しました。 VBをやるのは初めてで、プロパティですべてが対応できる ものなのかと思ってしまい、わからない部分がありました。 ご教授ありがとうございます。

関連するQ&A