Public Function VND(Baonhieu)
Dim KetQua, SoTien, Nhom, Chu, Dich, S1, S2, S3 As String
Dim I, J, Vitri As Byte, S As Double
Dim Hang, Doc, Dem
If Baonhieu = 0 Then
Ketqua = "Khoâng ñoàng "
Else
If Abs(Baonhieu) >= 1E+15 Then '1E+15 töùc 1.000.000.000.000.000 töùc 1 trieäu tyû
Ketqua = " Soá Quaù lôùn"
Else
If Baonhieu < 0 Then
Ketqua = " tröø " & Space(1)
Else
Ketqua = Space(0)
End If
Sotien = Format(Abs(Baonhieu), " 0.00") '18 digits Mith 2 decimal
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 ", "chaún ")
Dem = Array("None", "moät", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For I = 1 To 6
Nhom = Mid(SoTien, I * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If I = 5 Then
Chu = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00"
Chu = ""
Case Else
S1 = Left(Nhom, 1)
S2 = Mid(Nhom, 2, 1)
S3 = Right(Nhom, 1)
Chu = Space(0)
Hang(3) = Doc(I)
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)
End If
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) ' kyù töï en lôø
Case 2 And S = 0 And S3 <> "0"
If (S1 >= "1" And S1 <= "9") Or (S1 = "0" And 1 = 4) Then
Dich = "leû" & Space(1)
End If
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 I
End If
End If
VND = UCase(Left(Ketqua, 1)) & Mid(Ketqua, 2)
End Function