Function ConvertirHoraLetras(hora As String) As String
Dim horas() As String, minutos As String
horas = Split(hora, ":")
Select Case Val(horas(0))
Case 1
ConvertirHoraLetras = "una"
Case 2 To 12
ConvertirHoraLetras = Num2Words(Val(horas(0)))
Case 0
ConvertirHoraLetras = "doce"
Case Else
ConvertirHoraLetras = ""
End Select
If Val(horas(0)) > 0 Then
If Val(horas(1)) = 0 Then
ConvertirHoraLetras = ConvertirHoraLetras & " en punto"
Else
If Val(horas(1)) < 10 Then
minutos = "0" & Val(horas(1))
Else
minutos = Val(horas(1))
End If
ConvertirHoraLetras = ConvertirHoraLetras & " y " & Num2Words(minutos)
End If
End If
End Function
Function Num2Words(ByVal num As Long) As String
Dim unidades() As String, decenas() As String
unidades = Split("cero uno dos tres cuatro cinco seis siete ocho nueve")
decenas = Split("diez once doce trece catorce quince dieciséis diecisiete dieciocho diecinueve veinte treinta cuarenta cincuenta sesenta setenta ochenta noventa")
If num < 10 Then
Num2Words = unidades(num)
ElseIf num < 21 Then
Num2Words = decenas(num - 10)
ElseIf num < 30 Then
Num2Words = "veinti" & Num2Words(num - 20)
ElseIf num < 100 Then
Num2Words = decenas(Int(num / 10) - 1) & " y " & Num2Words(num Mod 10)
Else
Num2Words = ""
End If
End Function