テキストボックスの数値入力値チェック

数値を入力するテキストボックスは、まず KeyPress イベントで数値のみ入力できるようにしておくと、余計な文字が入力されていないかチェックする必要がなくなるため、いいかと思います。

数値の範囲は、 LostFocus イベントでチェックし、範囲外ならメッセージを表示し、テキストボックスにフォーカスを戻します。

下記のコードには入れていませんが、ロング型を超える数値が入力された場合エラーとなってしまうので、On Error を使った方がさらに安全です。

Excelコントロール Tipsメニューに戻る

スポンサーリンク





設定例

Option Explicit

'整数のみ入力
Public Function KeyInputVal(Key) As Integer
    If Key <> 8 Then
        If (Key < 48 Or Key > 57) Then
            Key = 0
        End If
    End If
    KeyInputVal = Key
End Function

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    '整数のみ入力
    KeyAscii = KeyInputVal(KeyAscii)
End Sub

Private Sub TextBox1_LostFocus()
    Dim n As Long
    
    If TextBox1.Text = "" Then
        Exit Sub
    End If
    n = Val(TextBox1.Text)
    '入力範囲のチェック
    If n < 0 Or n > 50000 Then
        MsgBox "価格は0〜5000円の範囲で入力してください。"
        'フォーカスを移す
        TextBox1.Activate
    End If
End Sub

スポンサーリンク



数値の入力範囲を検査




Excelコントロール Tipsメニューに戻る

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved