テキストボックスに数値以外入力できないようにする方法
◆概要
このページは、Visual Basic 6.0でテキストボックスに数値以外入力できないようにする方法について記載しています。
テキストボックスに数値以外を入力できないようにしたいときは、文字コードを調べます。
数字の文字コード(アスキーコード)は48から57が数字ですから、これ以外の文字コードは受け付けないようにします。
◆Sample 1
Option Explicit Dim MyStr As String Private Sub Form_Load() 'テキストボックスを初期化 Text1.Text = "" End Sub Private Sub Text1_Change() Dim buf As String Dim i As Integer Dim cbuf As Integer buf = Text1.Text For i = 1 To Len(buf) cbuf = Asc(Mid(buf, i, 1)) '48は数字0、57は数字9のアスキーコードです。 If cbuf < 48 Or cbuf > 57 Then Text1.Text = MyStr Exit For End If Next i MyStr = Text1.Text End Sub |
◆Sample 2
数字のみを受け取るようにするため、キーが押された時に発生する KeyPress イベントで、押されたキーに対応する文字が数値か否かを判断し、数値であればテキストボックスへの出力を許可します。
「If Not Chr(KeyAscii) Like "[0-9]" Then」で押されたキーを判別し、数値 (0 〜 9) 以外の場合、「KeyAscii = 0」でテキストへ出力しないようにします。このコードを実装すると、テキストボックスでは数値のみが入力可能となり、数値以外の文字や記号は入力できなくなります。
Private Sub Text1_KeyPress(KeyAscii As Integer) 'バックスペースは除外 If KeyAscii = vbKeyBack Then Exit Sub If Not Chr(KeyAscii) Like "[0-9]" Then KeyAscii = 0 '入力を無効にする End If End Sub |