プロが教える店舗&オフィスのセキュリティ対策術

VBの初心者の質問

項目の入力数が6byteなのですが、

入力数の桁が足りない場合は、処理中断し、エラーメッセージ出したいときはどうしたらいいのでしょうか。

よろしくお願いします。

A 回答 (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文でどのように比較するかは
ご自分で判断して下さい。
    • good
    • 0

私流の書き方は次のようです。



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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/25 13:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!