Function RaChu(BaoNhieu)
Dim KetQua, SOTIEN, NHOM, Chu, S1, s2, S3, Dich As String
Dim N, J, Vitri As Byte, S As Double, HANG, Doc, DEM
If BaoNhieu = 0 Then
KetQua = "Khoâng ñoàng"
Else
If Abs(BaoNhieu) > 1E+15 Then
KetQua = "Soá quùa lôùn"
Else
GoSub LamViecDi
End If
End If
RaChu = UCase(Left(KetQua, 1)) + Mid(KetQua, 2)
Exit Function
LamViecDi:
If BaoNhieu < 0 Then
KetQua = "Tröø" & Space(1)
Else
KetQua = Space(0)
End If
SOTIEN = Format(Abs(BaoNhieu), "##############0.00")
SOTIEN = Right(Space(15) & SOTIEN, 18)
HANG = Array("None", "traêm", "möôi", "gì ñoù")
Doc = Array("None", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", "xu")
DEM = Array("None", "moät", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For N = 1 To 6
NHOM = Mid(SOTIEN, N * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If N = 5 Then Chu = "ñoàng" & Space(1) Else Chu = Space(0)
Case ".00", ",00"
Chu = "chaün"
Case Else
S1 = Left(NHOM, 1): s2 = Mid(NHOM, 2, 1): S3 = Right(NHOM, 1)
Chu = Space(0): HANG(3) = Doc(N)
For J = 1 To 3
Dich = Space(0): S = Val(Mid(NHOM, J, 1))
If S > 0 Then Dich = DEM(S) & Space(1) & HANG(J) & Space(1)
Select Case J
Case 2 And S = 1
Dich = "möôøi" & Space(1)
Case 3 And S = 0 And NHOM <> Space(2) & "0"
Dich = HANG(J) & Space(1)
Case 3 And S = 5 And s2 <> Space(1) And s2 <> "0"
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And N = 5) Then Dich = "leû" & Space(1)
End Select
Chu = Chu & Dich
Next J
End Select
Vitri = InStr(1, Chu, "möôi moät", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "möôi moát"
KetQua = KetQua & Chu
End If
Next N
Return
End Function