VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



Numbers to words Function

by alexK (9 Submissions)
Category: VB function enhancement
Difficulty: Beginner
Date Added: Sun 7th February 2021
Rating: (1 Votes)

A simple function that converts a number in a number in words.

Rate Numbers to words Function

'Start Numbers to words Function
a = array( _
"zero", _
"one", _
"two", _
"three", _
"four", _
"five", _
"six", _
"seven", _
"eight", _
"nine", _
"ten", _
"eleven", _
"twelve", _
"thirteen", _
"fourteen", _
"fifteen", _
"sixteen", _
"seventeen", _
"eighteen", _
"nineteen" _
)
b = array( _
"twenty", _
"thirty", _
"forty", _
"fifty", _
"sixty", _
"seventy", _
"eighty", _
"ninety" _
)
c = array( _
"hundred", _
"thousand", _
"million", _
"billion", _
"trillion" _
)
'-------------------------------------------------------------------------'
' Returns the text for numbers; this can definitely be optimised further '
'-------------------------------------------------------------------------'
Function WhatAmI(i)
Dim s
If i >= 1000000000000 Then
If Len(i) = 15 Then s = WhatAmI(Left(i, 3)) & " " & c(4)
If Len(i) = 14 Then s = WhatAmI(Left(i, 2)) & " " & c(4)
If Len(i) = 13 Then s = WhatAmI(Left(i, 1)) & " " & c(4)
If Right(i, 12) <> "000000000000" Then
d = Mid(Right(i, 12), 1, 1)
e = Mid(Right(i, 12), 2, 1)
f = Mid(Right(i, 12), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(3)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 9) <> "000000000" Then
d = Mid(Right(i, 9), 1, 1)
e = Mid(Right(i, 9), 2, 1)
f = Mid(Right(i, 9), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(2)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 6) <> "000000" Then
d = Mid(Right(i, 6), 1, 1)
e = Mid(Right(i, 6), 2, 1)
f = Mid(Right(i, 6), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(1)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 3) <> "000" Then
d = Mid(Right(i, 3), 1, 1)
e = Mid(Right(i, 3), 2, 1)
f = Mid(Right(i, 3), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
ElseIf i >= 1000000000 Then
If Len(i) = 12 Then s = WhatAmI(Left(i, 3)) & " " & c(3)
If Len(i) = 11 Then s = WhatAmI(Left(i, 2)) & " " & c(3)
If Len(i) = 10 Then s = WhatAmI(Left(i, 1)) & " " & c(3)
If Right(i, 9) <> "000000000" Then
d = Mid(Right(i, 9), 1, 1)
e = Mid(Right(i, 9), 2, 1)
f = Mid(Right(i, 9), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(2)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 6) <> "000000" Then
d = Mid(Right(i, 6), 1, 1)
e = Mid(Right(i, 6), 2, 1)
f = Mid(Right(i, 6), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(1)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 3) <> "000" Then
d = Mid(Right(i, 3), 1, 1)
e = Mid(Right(i, 3), 2, 1)
f = Mid(Right(i, 3), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
ElseIf i >= 1000000 Then
If Len(i) = 9 Then s = WhatAmI(Left(i, 3)) & " " & c(2)
If Len(i) = 8 Then s = WhatAmI(Left(i, 2)) & " " & c(2)
If Len(i) = 7 Then s = WhatAmI(Left(i, 1)) & " " & c(2)
If Right(i, 6) <> "000000" Then
d = Mid(Right(i, 6), 1, 1)
e = Mid(Right(i, 6), 2, 1)
f = Mid(Right(i, 6), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f) & " " & c(1)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
If Right(i, 3) <> "000" Then
d = Mid(Right(i, 3), 1, 1)
e = Mid(Right(i, 3), 2, 1)
f = Mid(Right(i, 3), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
ElseIf i >= 1000 Then
If Len(i) = 6 Then s = WhatAmI(Left(i, 3)) & " " & c(1)
If Len(i) = 5 Then s = WhatAmI(Left(i, 2)) & " " & c(1)
If Len(i) = 4 Then s = WhatAmI(Left(i, 1)) & " " & c(1)
If Right(i, 3) <> "000" Then
d = Mid(Right(i, 3), 1, 1)
e = Mid(Right(i, 3), 2, 1)
f = Mid(Right(i, 3), 3, 1)
If d <> 0 Then
s = s & ", "
s = s & WhatAmI(d & e & f)
ElseIf e <> 0 Then
s = s & " and " & WhatAmI(e & f)
ElseIf f <> 0 Then
s = s & " and " & WhatAmI(f)
End If
End If
ElseIf i >= 100 Then
s = a(Left(i, 1)) & " " & c(0)
If Right(i, 2) <> "00" Then s = s & " and " & WhatAmI(Right(i, 2))
ElseIf i >= 90 Then
s = b(7)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 80 Then
s = b(6)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 70 Then
s = b(5)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 60 Then
s = b(4)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 50 Then
s = b(3)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 40 Then
s = b(2)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf i >= 30 Then
s = b(1)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf (i >= 20) Then
s = b(0)
If Right(i, 1) > 0 Then s = s & "-" & a(Right(i, 1))
ElseIf (i > 9) Then
s = a(i)
ElseIf (i >= 0 AND i <= 9) Then
s = a(i)
End If
WhatAmI = s
End Function

Download this snippet    Add to My Saved Code

Numbers to words Function Comments

No comments have been posted about Numbers to words Function. Why not be the first to post a comment about Numbers to words Function.

Post your comment

Subject:
Message:
0/1000 characters