Function format_currency1(ByVal money As String, ByVal width As Integer) As String
'convert to internal format for currency
Dim positive As Boolean
Dim decmoney As Currency
'need to convert to decimal to format number
decmoney = money
'set switch for positive/negative value
If decmoney >= 0 Then
positive = True
Else
positive = False
End If
'ensure there are no negative numbers
decmoney = Math.Abs(decmoney)
'format number to ensure the 2 right characters are the cents and convert back to string
If Left(Right(decmoney, 3), 1) = "." Then
money = decmoney
Else
money = decmoney & ".00"
End If
'omit decimal point
money = Left(money, Len(money) - 3) & Right(money, 2)
If positive = True Then
'positive currency amount
Select Case Right(money, 1)
Case 0
money = Left(money, Len(money) - 1) & "{"
Case 1
money = Left(money, Len(money) - 1) & "A"
Case 2
money = Left(money, Len(money) - 1) & "B"
Case 3
money = Left(money, Len(money) - 1) & "C"
Case 4
money = Left(money, Len(money) - 1) & "D"
Case 5
money = Left(money, Len(money) - 1) & "E"
Case 6
money = Left(money, Len(money) - 1) & "F"
Case 7
money = Left(money, Len(money) - 1) & "G"
Case 8
money = Left(money, Len(money) - 1) & "H"
Case 9
money = Left(money, Len(money) - 1) & "I"
End Select
Else
'negative currency amount
Select Case Right(money, 1)
Case 0
money = Left(money, Len(money) - 1) & "}"
Case 1
money = Left(money, Len(money) - 1) & "J"
Case 2
money = Left(money, Len(money) - 1) & "K"
Case 3
money = Left(money, Len(money) - 1) & "L"
Case 4
money = Left(money, Len(money) - 1) & "M"
Case 5
money = Left(money, Len(money) - 1) & "N"
Case 6
money = Left(money, Len(money) - 1) & "O"
Case 7
money = Left(money, Len(money) - 1) & "P"
Case 8
money = Left(money, Len(money) - 1) & "Q"
Case 9
money = Left(money, Len(money) - 1) & "R"
End Select
End If
'pad left with leading zeros to meet field width requirements
While Len(money) < width
money = "0" & money
Wend
format_currency1 = money
End Function