Public Function szambolszoveg(szam As String) As String
Dim hertekek(4), drb, darab As String
Dim hossz, hper3, hmod3, i As Integer
Dim ertek As Long
szam = Trim(szam)
ertek = CLng(szam)
szambolszoveg = ""
hertekek(1) = ""
hertekek(2) = "ezer"
hertekek(3) = "millió"
hertekek(4) = "milliárd"
hossz = Len(szam)
If hossz = 0 Then
szam = "Nulla"
Else
hper3 = hossz \\\\ 3
hmod3 = hossz - (hper3 * 3)
For i = 1 To hper3
drb = Mid(szam, hossz - i * 3 + 1, 3)
darab = sz3sz(drb)
If Len(darab) > 0 Then
If ertek > 2000 Then
szambolszoveg = darab & hertekek(i) & " " & szambolszoveg
Else
szambolszoveg = darab & hertekek(i) & szambolszoveg
End If
End If
Next i
If hmod3 > 0 Then
drb = Left(szam, hmod3)
darab = sz3sz(drb)
If Len(darab) > 0 Then
If ertek > 2000 Then
szambolszoveg = darab & hertekek(i) & " " & szambolszoveg
Else
szambolszoveg = darab & hertekek(i) & szambolszoveg
End If
End If
End If
End If
szambolszoveg = UCase(Left(szambolszoveg, 1)) & Right(szambolszoveg, Len(szambolszoveg) - 1)
End Function
Private Function sz3sz(ByVal sz3 As String) As String
Dim egyesek(10) As String
Dim tizesek(10) As String
Dim szazasok(10) As String
Dim ind, ind1 As Integer
egyesek(1) = "egy"
egyesek(2) = "kettő"
egyesek(3) = "három"
egyesek(4) = "négy"
egyesek(5) = "öt"
egyesek(6) = "hat"
egyesek(7) = "hét"
egyesek(8) = "nyolc"
egyesek(9) = "kilenc"
egyesek(10) = ""
tizesek(1) = "tízen"
tizesek(2) = "húszon"
tizesek(3) = "harminc"
tizesek(4) = "negyven"
tizesek(5) = "ötven"
tizesek(6) = "hatvan"
tizesek(7) = "hetven"
tizesek(8) = "nyolcvan"
tizesek(9) = "kilencven"
tizesek(10) = ""
szazasok(1) = "száz"
szazasok(2) = "kettőszáz"
szazasok(3) = "háromszáz"
szazasok(4) = "négyszáz"
szazasok(5) = "ötszáz"
szazasok(6) = "hatszáz"
szazasok(7) = "hétszáz"
szazasok(8) = "nyolcszáz"
szazasok(9) = "kilencszáz"
szazasok(10) = ""
sz3sz = ""
If Len(sz3) = 3 Then
ind = CInt(Left(sz3, 1))
sz3sz = sz3sz & szazasok(ind)
ind1 = CInt(Mid(sz3, 2, 1))
sz3sz = sz3sz & tizesek(ind1)
ind = CInt(Right(sz3, 1))
If ind > 0 Then
sz3sz = sz3sz & egyesek(ind)
Else
If Len(sz3sz) > 2 And (ind1 = 1 Or ind1 = 2) Then
sz3sz = Left(sz3sz, Len(sz3sz) - 2)
End If
End If
Else
If Len(sz3) = 2 Then
ind1 = CInt(Left(sz3, 1))
sz3sz = sz3sz & tizesek(ind1)
ind = CInt(Right(sz3, 1))
If ind > 0 Then
sz3sz = sz3sz & egyesek(ind)
Else
If Len(sz3sz) > 2 And (ind1 = 1 Or ind1 = 2) Then
sz3sz = Left(sz3sz, Len(sz3sz) - 2)
End If
End If
Else
ind = CInt(Right(sz3, 1))
sz3sz = egyesek(ind)
End If
End If
End Function
|