A continuación les presento una función hecha en Visual Basic 6.0 para convertir un número natural a números romanos; es sencilla y no necesita + que recibir como parámetro el número a convertir; espero le sea de utilidad a alguien. Function ConvertirRomano(numero As Integer) As String Dim Romano As String Dim I As Integer, Digito As Integer, X As Integer Dim Cadena As String, CadenaTmp As String Dim Simbolo1 As String * 1, Simbolo2 As String * 1, Simbolo3 As String * 1 Cadena = CStr(numero) For I = 1 To Len(Cadena) If Len(Cadena) = 4 Then Simbolo1 = "M" Simbolo2 = "Q" Simbolo3 = "H" Digito = CInt(Left$(Cadena, 1)) Cadena = Right$(Cadena, 3) ElseIf Len(Cadena) = 3 Then Simbolo1 = "C" Simbolo2 = "D" Simbolo3 = "M" Digito = CInt(Left$(Cadena, 1)) Cadena = Right$(Cadena, 2) ElseIf Len(Cadena) = 2 Then Simbolo1 = "X" Simbolo2 = "L" Simbolo3 = "C" Digito = CInt(Left$(Cadena, 1)) Cadena = Right$(Cadena, 1) ElseIf Len(Cadena) = 1 Then Simbolo1 = "I" Simbolo2 = "V" Simbolo3 = "X" Digito = CInt(Left$(Cadena, 1)) Cadena = "" End If If Digito <= 3 Then For X = 1 To Digito CadenaTmp = CadenaTmp & Simbolo1 Next ElseIf Digito < 5 Then CadenaTmp = Simbolo1 & Simbolo2 ElseIf Digito = 5 Then CadenaTmp = Simbolo2 ElseIf Digito <= 8 Then CadenaTmp = Simbolo2 For X = 1 To Digito - 5 CadenaTmp = CadenaTmp & Simbolo1 Next ElseIf Digito = 9 Then CadenaTmp = Simbolo1 & Simbolo3 End If Romano = Romano & CadenaTmp CadenaTmp = "" Next ConvertirRomano = Romano End Function