• ベストアンサー

VB6で桁数チェック

VBの初心者の質問 項目の入力数が6byteなのですが、 入力数の桁が足りない場合は、処理中断し、エラーメッセージ出したいときはどうしたらいいのでしょうか。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

テキストボックスに入力された ものと仮定しての答えです。 (テキストボックスでTabかEnterが押されたとして) Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer) ' If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then If Len(Text1.Text) <> 6 Then 'エラー処理 MsgBox "桁数エラーです。", vbInformation ' With Text1 .SelStart = 0 .SelLength = Len(.Text) .SetFocus End With ' Exit Sub Else '次の処理へ End If End If End Sub 6桁をIf文でどのように比較するかは ご自分で判断して下さい。

その他の回答 (1)

noname#140971
noname#140971
回答No.2

私流の書き方は次のようです。 Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)   Dim isError As Boolean   If KeyCode = vbKeyTab Or KeyCode = vbKeyReturn Then     isError = CBool(LenH(Me.Text1) < 6)     If isError Then       ErrorMsg "6バイト以下の入力ですので確定できません。"       KeyCode = 0     End If   End If End Sub <標準モジュール> Option Explicit Public Sub ErrorMsg(ByVal Msg As String)   MsgBox Msg, vbExclamation, " エラー発生のお知らせ" End Sub Public Function LenH(ByVal Text As String) As Integer   LenH = LenB(StrConv(Text, vbFromUnicode)) End Function

sinomori
質問者

お礼

どうもありがとうございます。

関連するQ&A