Spellnumber de fonction (numberRange comme gamme)
Si numberRange = puis ""
spellnumber = ""
Autrement
spellnumber = Currency2Words (numberRange, « livres », « penny »)
Finir si
Finir la fonction
Fonction Currency2Words (ByVal MyNumber, strUnits facultatifs, strFrac facultatif)
Faible Temp
Faibles unités
Faible Frac
Faible DecimalPlace
Obscurcir le compte
Si strUnits d'IsMissing (strUnits) puis = « dollars »
Si strFrac d'IsMissing (strFrac) puis = « cents »
Endroit de ReDim (9) comme corde
Placer (2) = « mille »
Placer (3) = « millions »
Placer (4) = « milliards »
Placer (5) = « trillion »
MyNumber = équilibre (streptocoque (MyNumber))
DecimalPlace = InStr (MyNumber, « .")
Si DecimalPlace > 0 puis
Le Temp = est parti (mi (MyNumber, DecimalPlace + 1) et « 00 », 2)
Frac = ConvertTens (Temp)
MyNumber = équilibre (gauche (MyNumber, DecimalPlace - 1))
Finir si
Compte = 1
Faire tandis que "" <> de MyNumber
Temp = ConvertHundreds (droit (MyNumber, 3))
Si unités <> = Temp et endroit (compte) et unités de "" de Temp puis
Si Len (MyNumber) > 3 puis
MyNumber = parti (MyNumber, Len (MyNumber) - 3)
Autrement
MyNumber = ""
Finir si
Compte = compte + 1
Boucle
Unités = équilibre (unités) et « «
Choisir l'équilibre de cas (les unités)
Enfermer le ""
Unités = "" '« pas » et strUnits
Cas « un »
Les unités = « une » et sont parties (strUnits, Len (strUnits) - 1)
Cas autrement
Unités = unités et strUnits
Extrémité choisie
Choisir l'équilibre de cas (Frac)
Enfermer le ""
Frac = "" '« et pas » et strFrac
Cas « un »
Si unités = puis ""
Frac = Frac et « « et strFrac
Autrement
Frac = « et un » et sont partis (strFrac, Len (strFrac) - 1)
Finir si
Enfermer autrement
Si unités = puis ""
Frac = Frac et « « et strFrac
Autrement
Frac = « et » et Frac et « « et strFrac
Finir si
Finir choisi
Si unités = puis ""
Currency2Words = Frac
Autrement
Currency2Words = unités et Frac
Finir si
Currency2Words = remplacent (équilibre (Currency2Words), « « , » ")
Fonction de fin
Fonction privée ConvertHundreds (ByVal MyNumber)
Faible résultat comme corde
Si Val (MyNumber) = 0 sortent alors la fonction
MyNumber = droit (« 000 » et MyNumber, 3)
'Centaines
Si parti (MyNumber, 1) <> « 0 » puis
Résultat = ConvertDigit (laissé (MyNumber, 1)) et « cent »
Finir si
'dix
Si mi (MyNumber, 2, 1) <> « 0 » puis
Résultat = résultat et ConvertTens (mi (MyNumber, 2))
Autrement
Résultat = résultat et ConvertDigit (mi (MyNumber, 3))
Finir si
ConvertHundreds = équilibre (résultat)
Fonction de fin
Fonction privée ConvertTens (ByVal MyTens)
Faible résultat comme corde
'La valeur est-elle entre 10 et 19 ?
Si Val (laissé (MyTens, 1)) = 1 alors
Choisir le cas Val (MyTens)
Affaire 10 : Résultat = « Dix »
Affaire 11 : Résultat = « onze »
Affaire 12 : Résultat = « douze »
Affaire 13 : Résultat = « treize »
Affaire 14 : Résultat = « quatorze »
Affaire 15 : Résultat = « quinze »
Affaire 16 : Résultat = « seize »
Affaire 17 : Résultat = « dix-sept »
Affaire 18 : Résultat = « dix-huit »
Affaire 19 : Résultat = « dix-neuf »
Cas autrement
Extrémité choisie
Autrement
'. autrement elle est entre 20 et 99.
Choisir le cas Val (est parti (MyTens, 1))
Affaire 2 : Résultat = « vingt »
Affaire 3 : Résultat = « trente »
Affaire 4 : Résultat = « quarante »
Affaire 5 : Résultat = « cinquante »
Affaire 6 : Résultat = « soixante »
Affaire 7 : Résultat = « soixante-dix »
Affaire 8 : Résultat = « quatre-vingts »
Affaire 9 : Résultat = « quatre-vingt-dix »
Cas autrement
Extrémité choisie
Le 'converti ceux placent le chiffre.
Résultat = résultat et ConvertDigit (droits (MyTens, 1))
Finir si
ConvertTens = résultat
Fonction de fin
Fonction privée ConvertDigit (ByVal MyDigit)
Choisir le cas Val (MyDigit)
Affaire 1 : ConvertDigit = « un »
Affaire 2 : ConvertDigit = « deux »
Affaire 3 : ConvertDigit = « trois »
Affaire 4 : ConvertDigit = « quatre »
Affaire 5 : ConvertDigit = « cinq »
Affaire 6 : ConvertDigit = « six »
Affaire 7 : ConvertDigit = « sept »
Affaire 8 : ConvertDigit = « huit »
Affaire 9 : ConvertDigit = « neuf »
Cas autrement : ConvertDigit = ""
Extrémité choisie
Fonction de fin
|