Funkcję do zamiany liczb arabskich na rzymskie podał mariusz.sankowski@big.pl (mariusz.sankowski@big.pl).
Uwaga: Poniższa procedura wymaga biblioteki msowcf.dll, należy ustawić referencje do tego pliku w odwołaniach.
Function ArabskieNaRzymskie(lngLiczba As Long) As String Dim obj As MSOWCFLib.OCFunc Set obj = New MSOWCFLib.OCFunc ArabskieNaRzymskie = obj.Roman(lngLiczba) Set obj = Nothing End Function
Przykładowo wywołanie ArabskieNaRzymskie(234) zwróci CCXXXIV.
Uzupełnienie:
Konwersja liczb dziesiętnych na rzymskie, to nie jedyna umiejętność biblioteki msowcf.dll.
Jeśli już sobie ją ustawiliśmy w referencjach, to możemy korzystać także z innych funkcji, zawartych w tym pliku.
Na podstawie przykładu Mariusza przygotowałem trzy inne procedury, które zwracają odpowiednio wartość liczby zaokrąglanej do dołu,
zaokrąglonej do góry (do n miejsc po przecinku) i zamienioną na postać binarną:
Function LiczbaDoDolu(lngLiczba As Double, n as Byte) As String Dim obj As MSOWCFLib.OCFunc Set obj = New MSOWCFLib.OCFunc LiczbaDoDolu = obj.ROUNDDOWN(lngLiczba, n) Set obj = Nothing End Function
Function LiczbaDoGory(lngLiczba As Double, n as Byte) As String Dim obj As MSOWCFLib.OCFunc Set obj = New MSOWCFLib.OCFunc LiczbaDoGory = obj.ROUNDUP(lngLiczba, n) Set obj = Nothing End Function
Function LiczbaNaBin(lngLiczba As Long) As String Dim obj As MSOWCFLib.OCATP Set obj = New MSOWCFLib.OCATP LiczbaNaBin= obj.DEC2BIN(234) Set obj = Nothing End Function