Achei isso ai aqui no forum em dicas... não testei mas deve funcionar......
Postada em 16/2/2006 por caliimar
'***********************************************
' Cole as duas funções em um módulo e chame validaHora no
' evento que achar melhor bastando informar a hora em string
'Funciona só no formato HH:MM - mas pode ser melhorada
Public Function validaHora(ValHora As String) As Boolean
If Len(ValHora) <> 5 Then
MsgBox "Hora inválida!!! Tente por exemplo algo como " & _
Format(Time, "hh:mm") & ".", vbCritical, "Dados inválidos!"
Exit Function
validaHora = False
End If
Dim hora As String
Dim minuto As String
Dim dp As String
hora = Mid$(ValHora, 1, 2)
minuto = Mid$(ValHora, 4, 2)
dp = Mid$(ValHora, 3, 1)
If mod1.Validanúmero(hora) = False Or CInt(hora) < 0 Or CInt(hora) > 23 Then
MsgBox "Hora inválida!!! Tente por exemplo algo como " & _
Format(Time, "hh:mm") & ".", vbCritical, "Dados inválidos!"
Exit Function
validaHora = False
End If
If mod1.Validanúmero(minuto) = False Or CInt(minuto) < 0 Or CInt(minuto) > 59 Then
MsgBox "Hora inválida!!! Tente por exemplo algo como " & _
Format(Time, "hh:mm") & ".", vbCritical, "Dados inválidos!"
Exit Function
validaHora = False
End If
If dp <> ":" Then
MsgBox "Hora inválida!!! Tente por exemplo algo como " & _
Format(Time, "hh:mm") & ".", vbCritical, "Dados inválidos!"
Exit Function
validaHora = False
End If
validaHora = True
End Function
'use em conjunto
Function Validanúmero(strText As String) As Boolean
Validanúmero = CBool(IsNumeric(strText))
End Function