整数部2桁、小数部1桁まで入力可能なテキストの入力チェックは以下で正しいでしょうか。
コンパイラ環境は現在ないので確認お願いします。
・以下でコンパイルエラーは発生しませんか
・入力チェックの方法として正しいでしょうか
間違いやまたよりよい方法がある場合はアドバイスください。
Dim a() as string
a=Split(Text, ".") 'Textは入力値
If(UBound(0) = 1) Then '小数点が入力されたときはa=1となる
If(length(a(0)) < 2) Then
エラー
Else If(length(a(1)) < 1) Then
エラー
End if
Else If
If(length(a(0)) < 2) Then
エラー
End If
End If
NO1です。
整数部は2桁、小数部は1桁しか許容しないのであれば、もう少し簡略出来ますが如何でしょうか。
Dim a() as string
a=Split(Text, ".") 'Textは入力値
If UBound(a) = 1 Then '小数点が入力されたときはa=1となる
If len(a(0)) <> 2 Or Len(a(1)) <>1 Then
エラー
End If
ElseIf len(a(0)) <> 2 Then
エラー
End If
一例です。
UBoundの引数が不正、Lengthは配列の要素数なのでLenでないといけない。
If(UBound(a) = 1) Then '小数点が入力されたときはa=1となる
If(len(a(0)) < 2) Then
質問者
お礼
ご回答ありがとうございます。
以下のように修正しましたが、どうでしょうか。
Dim a() as string
a=Split(Text, ".") 'Textは入力値
If(UBound(a) = 1) Then '小数点が入力されたときはa=1となる
If(len(a(0)) < 2) Then
エラー
Else If(len(a(1)) < 1) Then
エラー
End if
Else If
If(len(a(0)) < 2) Then
エラー
End If
End If
お礼
ありがとうございます。 今回別々のエラーメッセージを表示させるのでまとめないでおこうと思います。