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