これもまた、学校の課題の中で使用するソースですが、 本来とはまた違う数値チェックになります。 そもそも「IsNumeric」や「TryParse」という存在を、 昨日に初めて知ったので、当然使用していませんでした。 個人としては、ずっとこのチェックを使ってきたので、 まぁいいかなぁという感じです。' ******************************* ' TextBox1 の中身の数値チェック ' + 4桁まで頭に0を付ける ' ******************************* Try ' TextBox1の中身 Dim sData As String = Me.TextBox1.Text ' Integerへ変換 Dim iData As Integer = Integer.Parse(sData) Dim iLength As Integer = iData.ToString.Length ' 4桁制限 If iLength > 4 Then MsgBox("4文字以内で入力して下さい") Me.TextBox1.Text = "" Me.TextBox1.Focus() Exit Sub End If ' 不足分"0"作成 sData = "" For i As Integer = iLength To 3 sData += "0" Next ' TextBox1へ戻す Me.TextBox1.Text = sData & iData.ToString ' 数値以外 Catch ex As Exception MsgBox("数値以外です") Me.TextBox1.Text = "" Me.TextBox1.Focus() End TryTry内で「Integer.Parse」を行い、 「変換できれば」0詰め処理を行います。 この場合「0002」など、すでに頭に0が付加されているものも数値をして認識し、 全角数字やローマ数字はエラーとなります(Integerへ変換できないため)。 頭に0詰めする理由としては、 データベースを用いてマスタメンテを作成する上で、 0を入力する手間を省くためです。 また、この処理では、 「1,525」などの区切りが行われている場合は、 当然文字として認識するので、使用出来なくなります。 その場合は、カンマの存在をチェックし、あるなら省く必要がありますね。
ホーム > テクニック集 > VB.NET 入力値数値チェック+0詰め
0 件のコメント:
コメントを投稿