- 締切済み
入力値チェック
VBにて、テキストフィールドに入力した値を チェックするプログラムを作りたく、記載を致しました。 わからない点として、 (1) 値を入れ終わった直後に入力チェックが入るようにする コードをどうかけばいいのか? (2) 入力チェックは、"1~5"の値入力のみを受付ける。 それ以外は、"入力を受け付けない"というメッセージを 促し、テキストフィールドの値を空にする。 の2点です。 このチェック処理を作るための手順についてお伺いしたく 記載を致しました。 ご教授の程お願い致します。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- OKbokuzyo
- ベストアンサー率43% (130/296)
久しぶりすぎて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です
- nda23
- ベストアンサー率54% (777/1415)
VBのバージョンが何だか不明なので、具体的な記述はできませんが、 次のような理屈になると思います。 >値を入れ終わった直後に入力チェックが入るようにする 「値を入れ終わる」をどう定義するかです。私の感覚ではフォーカスを 失った(別のフィールドに移動した)時のイベントプロシージャで チェックをします。 >入力チェックは、"1~5"の値入力のみを受付ける コントロールのテキストプロパティで、入力値を受け取る。 If文で、入力値>="1" And 入力値<="5" を判断する。 これ以外ならメッセージボックスを表示して、コントロールの テキストプロパティに空文字列("")を代入する。 こんな感じでしょうか。
お礼
ロジックで作成するという点で理解しました。 VBをやるのは初めてで、プロパティですべてが対応できる ものなのかと思ってしまい、わからない部分がありました。 ご教授ありがとうございます。
お礼
非常にためになる意見ありがとうございます。 早速ですが、利用させていただきたいと思います。