Convertir a números romanos

Esta la encontré en el CodeLibrarian que trae el Office2000.

Function Num2Roman(ByVal N As Integer) As String
  '
  ' Converts a decimal number into a Roman number
  ' Valid input in the range 1-3999
  '
  Const Digits = "IVXLCDM"
  Dim i As Integer, Digit As Integer, Temp As String
  i = 1
  Temp = ""
  Do While N > 0
    Digit = N Mod 10
    N = N  10
    Select Case Digit
      Case 1
        Temp = Mid(Digits, i, 1) & Temp
      Case 2
        Temp = Mid(Digits, i, 1) & Mid(Digits, i, 1) & Temp
      Case 3
        Temp = Mid(Digits, i, 1) & Mid(Digits, i, 1) & Mid(Digits, i, 1) & Temp
      Case 4
        Temp = Mid(Digits, i, 2) & Temp
      Case 5
        Temp = Mid(Digits, i + 1, 1) & Temp
      Case 6
        Temp = Mid(Digits, i + 1, 1) & Mid(Digits, i, 1) & Temp
      Case 7
        Temp = Mid(Digits, i + 1, 1) & Mid(Digits, i, 1) & Mid(Digits, i, 1) & Temp
      Case 8
        Temp = Mid(Digits, i + 1, 1) & Mid(Digits, i, 1) & Mid(Digits, i, 1) & Mid(Digits, i, 1) & Temp
      Case 9
        Temp = Mid(Digits, i, 1) & Mid(Digits, i + 2, 1) & Temp
    End Select
    i = i + 2
  Loop
  Num2Roman = Temp
End Function
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s