|
Option Explicit 'SampleNo=069 WindowsXP VB6.0(SP5) 2002.05.15
'標準モジュール等に記入して下さい。
'===================================================================
' |テキストボックスを監視して数字以外が入力されたら
' 〃⌒⌒ヽ |削除する関数、− や .
は入力可で貼付にも対応している
'..ノノノノ)|使用方法は設定するテキストボックスの Change イベントに
'★§∩ ∩ |fTextBoxNumberCheck
Text1 のようにそのテキストボックスを
'彡人 ▽ノ |指定するだけでOKです。数字以外が入力されていたら抜出して
' - |Text1.Text
に返します。関数の戻り値は数字以外が入力されて
' |いたら True が返ります。
'===================================================================
Private Function fTextBoxNumberCheck(ByVal MyTextBox As TextBox)
As Boolean
Dim i As Long
'戻り値を初期値に設定
fTextBoxNumberCheck = False
'入力文字を1文字づつチェック
For i = 1 To Len(MyTextBox)
'最初の1文字目以外に−が入っていたら削除
If Mid$(MyTextBox, i, 1) =
Chr$(45) And i <> 1 Then
fTextBoxNumberCheck =
True
'-
を文字列から抜き取りテキストボックスに代入
MyTextBox =
Mid$(MyTextBox, 1, i - 1) & _
Mid$(MyTextBox, i + 1, Len(MyTextBox) -
i)
Beep
'カーソル位置をテキストの末尾へ
MyTextBox.SelStart = Len(MyTextBox.Text)
'フォーカスを元のテキストボックスに戻す
MyTextBox.SetFocus
Exit Function
End If
'0〜9 - . 及び Enter Tab 等の制御文字以外を削除
If Mid$(MyTextBox,
i, 1) >= Chr$(32) And Mid$(MyTextBox, i, 1) _
< Chr$(45) Or Mid$(MyTextBox, i, 1)
_
> Chr$(57) Or Mid$(MyTextBox, i,
1) = Chr$(47) Then
'文字が含まれていたら True
に設定
fTextBoxNumberCheck = True
'以下上記同様の処理
MyTextBox =
Mid$(MyTextBox, 1, i - 1) & _
Mid$(MyTextBox, i + 1, Len(MyTextBox) -
i)
Beep
MyTextBox.SelStart = Len(MyTextBox.Text)
MyTextBox.SetFocus
Exit Function
End If
Next
i
End
Function
Private Sub Text2_Change()
Dim
Result As
Boolean
Result =
fTextBoxNumberCheck(Text2)
'又は簡略化して fTextBoxNumberCheck Text2
End Sub
|