人の目には同じような空のコントロール、あるいはフィールドに見えても、
実際にはNull、Empty、ゼロ桁文字列などの別の値が格納されていることがある。
フォーム上で省略不能項目のチェックを行ったり、レコードセット上で値の有無をチェックしたいとき、
汎用の関数を定義していると便利だ。
以下の関数を定義し、「gfnc_value(調べたい値 or コントロール名)=True」なら何か値が入力されている。
'--------------------------------------------------
' Function : gfnc_Value
' 入力チェック
' varValue : 処理文字列
'--------------------------------------------------
Public Function gfnc_Value(ByVal varValue As Variant) As Boolean
If (IsEmpty(varValue) = True) Then
Exit Function
End If
If (IsNull(varValue)) Then
Exit Function
End If
If (varValue = vbNullString) Then
Exit Function
End If
If (StrComp(varValue, "") = 0) Then
Exit Function
End If
'---< CHECK OK >
gfnc_Value = True
End Function
vbNullStringについての判別は、StrCompを用いた「""(ゼロ桁文字列)」の判別より前におくべきである(2007-05-15修正)。 でないと、InputBoxでキャンセルした返り値で実行時エラー5が発生する。 InputBoxの返り値は空でOKしたものもキャンセルで回避したものもvbNullStringと判断されるが、 これを区別する場合にはStrPtr関数を使う。