Function FilterKeyPress(ByVal KeyAscii As Integer, _
Optional AcceptCharacters As String, _
Optional DenyCharacters As String) As Integer
//---------------------------------------------------------------
// Name Function FilterKeypress(...)
// Description 텍스트박스(TextBox)에서 특정한 입력만 허용
// Arguments
... ByVal KeyAscii As Integer TextBox 컨트롤의 KeyAscii매개변수
... Optional AcceptCharacters As String 허용할 문자열
... Optional DenyCharacters As String 무시할 문자열
// Returns Ascii 키값
//---------------------------------------------------------------
// DEL키에 대한 Ascii값 정의
Const DEL As Integer = 8
// 돌려줄 값으로 일단 KeyAscii을 저장합니다
// 허용여부는 나중에 판단합니다
FilterKeyPress = KeyAscii
// DEL키인 경우 그냥 허용합니다
If KeyAscii = DEL Then Exit Function
// 허용할 키인 경우
If Len(AcceptCharacters) Then
// 허용할 키를 찾을 수 없다면 0값을 돌려주어
// 키 입력을 무시하도록
합니다
If InStr(1, AcceptCharacters, Chr$(KeyAscii))
= 0 Then
FilterKeyPress = 0
Beep
End If
// 거부할 키인 경우
ElseIf Len(DenyCharacters) Then
// 거부할 키가 있는 경우 0값을 돌려주어
// 키 입력을 무시하도록 합니다
If InStr(1, DenyCharacters, Chr$(KeyAscii)) >
0 Then
FilterKeyPress = 0
Beep
End If
End If
End Function
Private Sub TextBox1_KeyPress(ByVal
KeyAscii As MSForms.ReturnInteger)
KeyAscii = FilterKeypress(KeyAscii,
AcceptCharacters:="1234567890")
End Sub |