There are several reasons you might want to convert numbers to words in Excel:
Excel doesn’t have a built-in function to convert numbers to words directly. Therefore, you'll need to use a custom VBA function. VBA is a programming language within Excel that enables you to extend its functionality.
If you aren't familiar with VBA, don’t worry. The process of adding and using a VBA script is straightforward, and this article will guide you through it step by step.
Before you start, you need to ensure that the Developer tab is enabled in Excel, as this is where you'll be working with VBA.
Once the Developer tab is enabled:
Copy and paste the following VBA code into the module window:
vba
Copy code
Function NumToWords(ByVal MyNumber)
Dim Units As String
Dim Tens As String
Dim Pesos As String
Dim Cents As String
Dim DecimalPlace As Integer
Dim Count As Integer
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
' Convert MyNumber to String in case it's a number.
MyNumber = Trim(CStr(MyNumber))
' Find Position of decimal place.
DecimalPlace = InStr(MyNumber, ".")
' Convert Peso amount.
If DecimalPlace > 0 Then
Pesos = Left(MyNumber, DecimalPlace - 1)

Cents = Mid(MyNumber, DecimalPlace + 1) & "/100"
Else
Pesos = MyNumber
Cents = "00/100"
End If
Count = 1
Do While Pesos <> ""
Temp = GetHundreds(Right(Pesos, 3))
If Temp <> "" Then Units = Temp & Place(Count) & Units
If Len(Pesos) > 3 Then
Pesos = Left(Pesos, Len(Pesos) - 3)
Else
Pesos = ""
End If
Count = Count + 1
Loop
NumToWords = Units & "Pesos " & Cents
End Function
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
End If
' Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
Function GetTens(TensText)
Dim Result As String
Result = ""
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
Case 10: Result = "Ten"
Case 11: Result = "Eleven"
Case 12: Result = "Twelve"
Case 13: Result = "Thirteen"
Case 14: Result = "Fourteen"
Case 15: Result = "Fifteen"
Case 16: Result = "Sixteen"
Case 17: Result = "Seventeen"
Case 18: Result = "Eighteen"
Case 19: Result = "Nineteen"
Case Else
End Select
Else
Select Case Val(Left(TensText, 1))
Case 2: Result = "Twenty "
Case 3: Result = "Thirty "
Case 4: Result = "Forty "
Case 5: Result = "Fifty "
Case 6: Result = "Sixty "
Case 7: Result = "Seventy "
Case 8: Result = "Eighty "
Case 9: Result = "Ninety "
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "One"
Case 2: GetDigit = "Two"
Case 3: GetDigit = "Three"
Case 4: GetDigit = "Four"
Case 5: GetDigit = "Five"
Case 6: GetDigit = "Six"
Case 7: GetDigit = "Seven"
Case 8: GetDigit = "Eight"
Case 9: GetDigit = "Nine"
Case Else: GetDigit = ""
End Select
End Function
This VBA code converts any number into words in the Peso format. It handles numbers up to billions and includes centavos, which are represented as "00/100" when no cents are provided.
Before you can use the function, save your workbook as a macro-enabled file:
Now that you've added the VBA function, you can use it in your Excel sheet like a normal function. Here’s how:
For example, if cell A1 contains the value 1234.56, the result would be "One Thousand Two Hundred Thirty-Four Pesos 56/100."
With this guide, you now know how to convert number to words in excel peso using a custom VBA function. This process is particularly useful for preparing financial documents like invoices or checks. By following these steps, you’ll be able to automatically spell out any numerical amount in Peso, complete with centavos. While Excel doesn’t offer this feature natively, the flexibility of VBA allows you to extend its functionality to meet your needs.





