Sub nomNumero() Dim unidades(20), decenas(10), centenas(10), miles(1) As String Dim nombre As String Dim num As Integer Dim veintes As Boolean veintes = false unidades(0) = "cero" unidades(1) = "uno" unidades(2) = "dos" unidades(3) = "tres" unidades(4) = "cuatro" unidades(5) = "cinco" unidades(6) = "seis" unidades(7) = "siete" unidades(8) = "ocho" unidades(9) = "nueve" unidades(10) = "diez" unidades(11) = "once" unidades(12) = "doce" unidades(13) = "trece" unidades(14) = "catorce" unidades(15) = "quince" unidades(16) = "dieciseis" unidades(17) = "diecisiete" unidades(18) = "dieciocho" unidades(19) = "diecinueve" decenas(0) = "veinte" decenas(1) = "diez" decenas(2) = "veinti" decenas(3) = "treinta" decenas(4) = "cuarenta" decenas(5) = "cincuenta" decenas(6) = "sesenta" decenas(7) = "setenta" decenas(8) = "ochenta" decenas(9) = "noventa" centenas(1) = "cien" centenas(2) = "doscientos" centenas(3) = "trescientos" centenas(4) = "cuatrocientos" centenas(5) = "quinientos" centenas(6) = "seiscientos" centenas(7) = "setecientos" centenas(8) = "ochocientos" centenas(9) = "novecientos" miles(1) = "mil" num = Val(InputBox("escribe un numero menor o igual a mil: ")) if num = 1000 then nombre = miles(1) end if if num >= 100 and num <1000 then nombre = centenas(Int(num/100)) num = num - Int(num/100)*100 end if if num = 20 then nombre = nombre & " " & decenas(0) end if if num >20 then nombre = nombre & " " & decenas(Int(num/10)) if Int(num/10) = 2 then veintes = true end if num = num - Int(num/10)*10 end if if num > 0 and num <=10 then if veintes then nombre = nombre & unidades(num) else nombre = nombre & " y " & unidades(num) end if end if msgbox(nombre) End Sub