Public Function Slownie(L) As String Dim C As Currency, S As String, G As String, Liczba000 As String Dim i As Byte, Wynik As String, L1 As Byte, L10 As Byte, L100 As Byte If Not IsNumeric(L) Then Wynik = "???" ElseIf L > 999999999999# Then Wynik = "+++" ElseIf L < -999999999999# Then Wynik = "---" Else C = CCur(L) Wynik = Switch(C < 0, "minus") & "" If Fix(C) = 0 Then Wynik = Wynik & " " & "zero z³otych" ElseIf Int(Abs(C)) = 1 Then Wynik = Wynik & " " & "jeden z³oty" Else S = Right(Format(Fix(C), "000000000000"), 12) '----z³ote For i = 0 To 3 Liczba000 = Mid(S, 3 * i + 1, 3) If CInt(Liczba000) = 1 Then Wynik = Trim(Wynik) & " " & Trim("jeden " & Choose(i + 1, "miliard", "milion", "tysi¹c", "z³otych")) Else L1 = Right(Liczba000, 1) L10 = Mid(Liczba000, 2, 1) L100 = Left(Liczba000, 1) If L1 + L10 + L100 > 0 Then Wynik = Trim(Wynik) & " " & Trim(Stringi("Setki", L100) & " " & Stringi("dziesiatki", L10)) If L10 = 1 Then Wynik = Trim(Wynik) & " " & Stringi("nastki", L1) & " " & Choose(i + 1, "miliardów", "milionów", "tysiêcy", "z³otych") Else Wynik = Trim(Wynik) & " " & Trim(Stringi("jednostki", L1) & " " & Stringi("sekcja" & i, L1)) End If End If If (i = 3) And (L10 <> 1) Then Wynik = Trim(Wynik) & " " & Stringi("zlote", Right(S, 1)) End If Next i End If G = Right(Format(C, "0.00"), 2) '---grosze If G = 0 Then Wynik = Trim(Wynik) & " zero groszy" ElseIf G = 1 Then Wynik = Trim(Wynik) & " jeden grosz" Else If Left(G, 1) = 1 Then Wynik = Trim(Wynik) & " " & Stringi("nastki", Right(G, 1)) & " groszy" Else Wynik = Trim(Wynik) & " " & Trim(Stringi("dziesiatki", Left(G, 1)) & " " & Stringi("jednostki", Right(G, 1))) Wynik = Trim(Wynik) & " " & Stringi("grosze", Right(G, 1)) End If End If End If Slownie = Wynik End Function Public Function Stringi(NrStringu As String, Cyfra As Byte) Select Case NrStringu Case "jednostki" Stringi = Choose(Cyfra, "jeden", "dwa", "trzy", "cztery", "piêæ", "szeœæ", "siedem", "osiem", "dziewiêæ") Case "nastki" Stringi = Choose(Cyfra + 1, "dziesiêæ", "jedenaœcie", "dwanaœcie", "trzynaœcie", "czternaœcie", "piêtnaœcie", "szesnaœcie", "siedemnaœcie", "osiemnaœcie", "dziewiêtnaœcie") Case "dziesiatki" Stringi = Choose(Cyfra, "", "dwadzieœcia", "trzydzieœci", "czterdzieœci", "piêædziesi¹t", "szeœædziesi¹t", "siedemdziesi¹t", "osiemdziesi¹t", "dziewiêædziesi¹t") Case "setki" Stringi = Choose(Cyfra, "sto", "dwieœcie", "trzysta", "czterysta", "piêæset", "szeœæset", "siedemset", "osiemset", "dziewiêæset") Case "sekcja2" Stringi = Choose(Cyfra + 1, "tysiêcy", "tysiêcy", "tysi¹ce", "tysi¹ce", "tysi¹ce", "tysiêcy", "tysiêcy", "tysiêcy", "tysiêcy", "tysiêcy") Case "sekcja1" Stringi = Choose(Cyfra + 1, "milionów", "milionów", "miliony", "miliony", "miliony", "milionów", "milionów", "milionów", "milionów", "milionów") Case "sekcja0" Stringi = Choose(Cyfra + 1, "miliardów", "miliardów", "miliardy", "miliardy", "miliardy", "miliardów", "miliardów", "miliardów", "miliardów", "miliardów") Case "zlote" Stringi = Choose(Cyfra + 1, "z³otych", "z³otych", "z³ote", "z³ote", "z³ote", "z³otych", "z³otych", "z³otych", "z³otych", "z³otych") Case "grosze" Stringi = Choose(Cyfra + 1, "groszy", "groszy", "grosze", "grosze", "grosze", "groszy", "groszy", "groszy", "groszy", "groszy") End Select End Function