0% found this document useful (0 votes)
67 views5 pages

Macro Code: Open Excel Workbook Press Alt+F11

The document describes a macro code that converts numbers to their written character equivalents. The macro code: 1) Uses a series of if/then statements and select case structures to convert numbers up to the trillions place value to words, handling hundreds, tens and ones places separately. 2) Saves the macro code in an Excel workbook and names the function "NumberToChar" to call it from a cell using "=NumberToChar(number)". 3) Returns the number converted to words like "one hundred twenty-three million four hundred fifty-six thousand seven hundred eighty-nine".

Uploaded by

Amit Joshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views5 pages

Macro Code: Open Excel Workbook Press Alt+F11

The document describes a macro code that converts numbers to their written character equivalents. The macro code: 1) Uses a series of if/then statements and select case structures to convert numbers up to the trillions place value to words, handling hundreds, tens and ones places separately. 2) Saves the macro code in an Excel workbook and names the function "NumberToChar" to call it from a cell using "=NumberToChar(number)". 3) Returns the number converted to words like "one hundred twenty-three million four hundred fifty-six thousand seven hundred eighty-nine".

Uploaded by

Amit Joshi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

MACRO CODE

NUMBER TO CHARACTER
 Open Excel Workbook
 Press Alt+F11

Goto Insert menu  Click on Module command  and paste below code
 Press Ctrl + S = Save
 Type Function name as file name and select File Save type (Excel Macro
Enable Workbook)
 Now use Function by pressing = Sign

Function NumberToChar(ByVal N As Currency) As String

Const Thousand = 1000@

Const Million = Thousand * Thousand

Const Billion = Thousand * Million

Const Trillion = Thousand * Billion

If (N = 0@) Then NumberToChar = "zero": Exit Function

Dim Buf As String: If (N < 0@) Then Buf = "negative " Else Buf = ""

Dim Frac As Currency: Frac = Abs(N - Fix(N))

If (N < 0@ Or Frac <> 0@) Then N = Abs(Fix(N))

Dim AtLeastOne As Integer: AtLeastOne = N >= 1

If (N >= Trillion) Then

Buf = Buf & NumberToCharDigitGroup(Int(N / Trillion)) & " trillion"

N = N - Int(N / Trillion) * Trillion


If (N >= 1@) Then Buf = Buf & " "

End If

If (N >= Billion) Then

Buf = Buf & NumberToCharDigitGroup(Int(N / Billion)) & " billion"

N = N - Int(N / Billion) * Billion

If (N >= 1@) Then Buf = Buf & " "

End If

If (N >= Million) Then

Buf = Buf & NumberToCharDigitGroup(N \ Million) & " million"

N = N Mod Million

If (N >= 1@) Then Buf = Buf & " "

End If

If (N >= Thousand) Then

Buf = Buf & NumberToCharDigitGroup(N \ Thousand) & " thousand"

N = N Mod Thousand

If (N >= 1@) Then Buf = Buf & " "

End If

If (N >= 1@) Then

Buf = Buf & NumberToCharDigitGroup(N)

End If

NumberToChar = Buf

End Function

Private Function NumberToCharDigitGroup(ByVal N As Integer) As String


Const Hundred = " hundred"

Const One = "one"

Const Two = "two"

Const Three = "three"

Const Four = "four"

Const Five = "five"

Const Six = "six"

Const Seven = "seven"

Const Eight = "eight"

Const Nine = "nine"

Dim Buf As String: Buf = ""

Dim Flag As Integer: Flag = False

Select Case (N \ 100)

Case 0: Buf = "": Flag = False

Case 1: Buf = One & Hundred: Flag = True

Case 2: Buf = Two & Hundred: Flag = True

Case 3: Buf = Three & Hundred: Flag = True

Case 4: Buf = Four & Hundred: Flag = True

Case 5: Buf = Five & Hundred: Flag = True

Case 6: Buf = Six & Hundred: Flag = True

Case 7: Buf = Seven & Hundred: Flag = True

Case 8: Buf = Eight & Hundred: Flag = True

Case 9: Buf = Nine & Hundred: Flag = True

End Select

If (Flag <> False) Then N = N Mod 100

If (N > 0) Then
If (Flag <> False) Then Buf = Buf & " "

Else

NumberToCharDigitGroup = Buf

Exit Function

End If

Select Case (N \ 10)

Case 0, 1: Flag = False

Case 2: Buf = Buf & "twenty": Flag = True

Case 3: Buf = Buf & "thirty": Flag = True

Case 4: Buf = Buf & "forty": Flag = True

Case 5: Buf = Buf & "fifty": Flag = True

Case 6: Buf = Buf & "sixty": Flag = True

Case 7: Buf = Buf & "seventy": Flag = True

Case 8: Buf = Buf & "eighty": Flag = True

Case 9: Buf = Buf & "ninety": Flag = True

End Select

If (Flag <> False) Then N = N Mod 10

If (N > 0) Then

If (Flag <> False) Then Buf = Buf & "-"

Else

NumberToCharDigitGroup = Buf

Exit Function

End If

Select Case (N)

Case 0:

Case 1: Buf = Buf & One


Case 2: Buf = Buf & Two

Case 3: Buf = Buf & Three

Case 4: Buf = Buf & Four

Case 5: Buf = Buf & Five

Case 6: Buf = Buf & Six

Case 7: Buf = Buf & Seven

Case 8: Buf = Buf & Eight

Case 9: Buf = Buf & Nine

Case 10: Buf = Buf & "ten"

Case 11: Buf = Buf & "eleven"

Case 12: Buf = Buf & "twelve"

Case 13: Buf = Buf & "thirteen"

Case 14: Buf = Buf & "fourteen"

Case 15: Buf = Buf & "fifteen"

Case 16: Buf = Buf & "sixteen"

Case 17: Buf = Buf & "seventeen"

Case 18: Buf = Buf & "eighteen"

Case 19: Buf = Buf & "nineteen"

End Select

NumberToCharDigitGroup = Buf

End Function

You might also like