Fazendo um TextBox aceitar apenas números
Usando duas APIs você pode limitar a entrada de texto em um TextBox apenas a números. Veja como fazer usando o código abaixo:
Declarações:
Private Const GWL_STYLE = (-16)
Private Const ES_NUMBER = &H2000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Procedimento:
Public Function TextBoxNumerico(otxtbox As TextBox) As Boolean
Dim lngHwnd As Long
Dim lngReturn As Long
lngHwnd = GetWindowLong(otxtbox.hwnd, GWL_STYLE)
lngReturn = SetWindowLong(otxtbox.hwnd, GWL_STYLE, lngHwnd Or ES_NUMBER)
'se retornar false é porque falhou
TextBoxNumerico = (lngReturn <> 0)
End Function