Olha eu recomendo q vc use o maskeditbox. Vá no menu "Project" depois clique em "Components...". Escolha "Microsoft Masked Edit Control 6.0". No meu caso é a versão 6.0 mas pode ser q vc tenha outra... sem problemas ok?
Depois na propriedade "mask", do seu controle Maskedbox, vc coloca assim: ##:##
pronto fica fácil. Mas se for o caso, se vc quiser usar o texbox use este código:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii >= vbKey0 And KeyAscii <= vbKey9 Or KeyAscii = vbKeyBack Or KeyAscii = vbKeyReturn Then
If Len(Text1) = Text1.MaxLength - 2 Then
Text1 = Format(Text1 & Chr(KeyAscii), "00:00")
If Not IsDate(Text1) Then
MsgBox "hora inválida": Text1 = ""
End If
End If
Exit Sub
End If
KeyAscii = 0
End Sub
Este código funciona sem problemas mas tem algumas limitações q são um pouco chatas. No código acima eu habilitei o uso das teclas "BackSpace" e "Enter". As teclas direcionais e a tecla "delete" funcionam mas de resto só entram números. Use a propriedade MaxLength = 5 pois eu formatei o código para q entre hora no formato HH:MM somente ok?
Espero q ajude de alguma forma
t+