Function Arabic(ByVal Roman As String) As Variant Dim a As Integer, i As Integer Dim m As Integer, n As Integer Dim s As String s = UCase(Trim(Roman)) For i = Len(s) To 1 Step -1 Select Case Mid(s, i, 1) Case "I": n = 1 Case "V": n = 5 Case "X": n = 10 Case "L": n = 50 Case "C": n = 100 Case "D": n = 500 Case "M": n = 1000 Case Else: Exit Function End Select If n < m Then n = -n Else m = n a = a + n Next Arabic = a End Function