11. Zamiana liczb arabskich na rzymskie.

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