- ベストアンサー
VB6で桁数チェック
VBの初心者の質問 項目の入力数が6byteなのですが、 入力数の桁が足りない場合は、処理中断し、エラーメッセージ出したいときはどうしたらいいのでしょうか。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックスに入力された ものと仮定しての答えです。 (テキストボックスで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)
私流の書き方は次のようです。 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
お礼
どうもありがとうございます。