Option Explicit
Function VN(Amt)
Dim Resp As String, Tien As String, Dem As String, Doc As String, NHOM As String
Dim Chu As String, So1 As String, So2 As String, So3 As String, Dich As String, Vitri As String
Dim i As Integer, j As Integer, S As Integer
If Amt = 0 Then
Resp = "Kh«ng ®ång"
Else
If Abs(Amt) > 999999999999.99 Then
Resp = "Sè qu¸ lín"
Else
If Amt < 0 Then
Resp = "Trõ "
Else
Resp = Space(0)
End If
Tien = Format(Abs(Amt), "###########0.00")
Tien = Right(Space(12) + Tien, 15)
Doc = Space(0): Dem = Doc
Doc = Doc + "tr¨m m¬i tû "
Doc = Doc + "tr¨m m¬i triÖu "
Doc = Doc + "tr¨m m¬i ngµn "
Doc = Doc + "tr¨m m¬i ®ång "
Dem = Dem + "mét hai ba bèn n¨m s¸u b¶y t¸m chÝn "
For i = 1 To 5
NHOM = Mid(Tien, i * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If i = 4 Then
Chu = "®ång"
Else
Chu = Space(0)
End If
Case ".00"
Chu = ""
Case Else
So1 = Left(NHOM, 1)
So2 = Mid(NHOM, 2, 1)
So3 = Right(NHOM, 1)
Chu = Space(0)
For j = 1 To 3
Dich = Space(0)
S = Val(Mid(NHOM, j, 1))
If S > 0 Then
Dich = Trim(Mid(Dem, S * 5 - 4, 5)) + " " + Trim(Mid(Doc, (i - 1) * 18 + j * 6 - 5, 6)) + " "
End If
Select Case j
Case 1 And S = 0 And i = 4 And (Abs(Amt) < 100 And Abs(Amt) >= 1)
Dich = Space(0)
Case 1 And S = 0 And i <> 1 And i <> 5
Dich = "kh«ng tr¨m "
Case 2 And S = 1
Dich = "mêi "
Case 3 And S = 0 And NHOM <> Space(2) + "0"
Dich = Trim(Mid(Doc, (i - 1) * 18 + j * 6 - 5, 6)) + Space(1)
Case 3 And S = 5 And So2 <> Space(1) And So2 <> "0"
Dich = "l" + Mid(Dich, 2)
Case 2 And S = 0 And So3 <> "0"
If (So1 >= "0" And So1 <= "9") Or (So1 = "0" And i = 4) Then
Dich = "lÎ "
End If
End Select
Chu = Chu + Dich
Next j
End Select
Vitri = InStr(1, Chu, "m¬i mét", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "m¬i mèt"
Resp = Resp + Chu
End If
Next i
End If
End If
If (Abs(Amt) < 10 ^ 8 And Abs(Amt) >= 10 ^ 6) Or (Abs(Amt) <= 99999 And Abs(Amt) >= 10 ^ 3) Then
VN = "B»ng ch÷: " + UCase(Mid(Resp, 12, 1)) + RTrim(Mid(Resp, 13)) + "."
Else
VN = "B»ng ch÷: " + UCase(Left(Resp, 1)) + RTrim(Mid(Resp, 2)) + "."
End If
End Function
Function VNU(Amt)
Dim Resp As String, Tien As String, Dem As String, Doc As String, NHOM As String
Dim Chu As String, So1 As String, So2 As String, So3 As String, Dich As String, Vitri As String
Dim i As Integer, j As Integer, S As Integer
If Amt = 0 Then
Resp = "Kh«ng ®ång"
Else
If Abs(Amt) > 999999999999.99 Then
Resp = "Sè qu¸ lín"
Else
If Amt < 0 Then
Resp = "Trõ "
Else
Resp = Space(0)
End If
Tien = Format(Abs(Amt), "###########0.00")
Tien = Right(Space(12) + Tien, 15)
Doc = Space(0): Dem = Doc
Doc = Doc + "tr¨m m¬i tû "
Doc = Doc + "tr¨m m¬i triÖu "
Doc = Doc + "tr¨m m¬i ngµn "
Doc = Doc + "tr¨m m¬i ®ång "
Dem = Dem + "mét hai ba bèn n¨m s¸u b¶y t¸m chÝn "
For i = 1 To 5
NHOM = Mid(Tien, i * 3 - 2, 3)
If NHOM <> Space(3) Then
Select Case NHOM
Case "000"
If i = 4 Then
Chu = "®ång"
Else
Chu = Space(0)
End If
Case ".00"
Chu = ""
Case Else
So1 = Left(NHOM, 1)
So2 = Mid(NHOM, 2, 1)
So3 = Right(NHOM, 1)
Chu = Space(0)
For j = 1 To 3
Dich = Space(0)
S = Val(Mid(NHOM, j, 1))
If S > 0 Then
Dich = Trim(Mid(Dem, S * 5 - 4, 5)) + " " + Trim(Mid(Doc, (i - 1) * 18 + j * 6 - 5, 6)) + " "
End If
Select Case j
Case 1 And S = 0 And i = 4 And (Abs(Amt) < 100 And Abs(Amt) >= 1)
Dich = Space(0)
Case 1 And S = 0 And i <> 1 And i <> 5
Dich = "kh«ng tr¨m "
Case 2 And S = 1
Dich = "mêi "
Case 3 And S = 0 And NHOM <> Space(2) + "0"
Dich = Trim(Mid(Doc, (i - 1) * 18 + j * 6 - 5, 6)) + Space(1)
Case 3 And S = 5 And So2 <> Space(1) And So2 <> "0"
Dich = "l" + Mid(Dich, 2)
Case 2 And S = 0 And So3 <> "0"
If (So1 >= "0" And So1 <= "9") Or (So1 = "0" And i = 4) Then
Dich = "lÎ "
End If
End Select
Chu = Chu + Dich
Next j
End Select
Vitri = InStr(1, Chu, "m¬i mét", 1)
If Vitri > 0 Then Mid(Chu, Vitri, 9) = "m¬i mèt"
Resp = Resp + Chu
End If
Next i
End If
End If
If (Abs(Amt) < 10 ^ 8 And Abs(Amt) >= 10 ^ 6) Or (Abs(Amt) <= 99999 And Abs(Amt) >= 10 ^ 3) Then
VNU = UNI("B»ng ch÷: " & UCase(Mid(Resp, 12, 1)) + RTrim(Mid(Resp, 13)) + ".")
Else
VNU = UNI("B»ng ch÷: " & UCase(Left(Resp, 1)) + RTrim(Mid(Resp, 2)) + ".")
End If
End Function
Function VNUNI(So)
Dim Doc As String
Doc = VN(Abs(So))
VNUNI = UNI(Doc)
End Function
Function UNI(vnstr As String) As String
Dim c As String, i As Integer
For i = 1 To Len(vnstr)
c = Mid(vnstr, i, 1)
Select Case c
Case "a": c = ChrW$(97)
Case "¸": c = ChrW$(225)
Case "µ": c = ChrW$(224)
Case "¶": c = ChrW$(7843)
Case "·": c = ChrW$(227)
Case "¹": c = ChrW$(7841)
Case "¨": c = ChrW$(259)
Case "¾": c = ChrW$(7855)
Case "»": c = ChrW$(7857)
Case "¼": c = ChrW$(7859)
Case "½": c = ChrW$(7861)
Case "Æ": c = ChrW$(7863)
Case "©": c = ChrW$(226)
Case "Ê": c = ChrW$(7845)
Case "Ç": c = ChrW$(7847)
Case "È": c = ChrW$(7849)
Case "É": c = ChrW$(7851)
Case "Ë": c = ChrW$(7853)
Case "e": c = ChrW$(101)
Case "Ð": c = ChrW$(233)
Case "Ì": c = ChrW$(232)
Case "Î": c = ChrW$(7867)
Case "Ï": c = ChrW$(7869)
Case "Ñ": c = ChrW$(7865)
Case "ª": c = ChrW$(234)
Case "Õ": c = ChrW$(7871)
Case "Ò": c = ChrW$(7873)
Case "Ó": c = ChrW$(7875)
Case "Ô": c = ChrW$(7877)
Case "Ö": c = ChrW$(7879)
Case "o": c = ChrW$(111)
Case "ã": c = ChrW$(243)
Case "ß": c = ChrW$(242)
Case "á": c = ChrW$(7887)
Case "â": c = ChrW$(245)
Case "ä": c = ChrW$(7885)
Case "«": c = ChrW$(244)
Case "è": c = ChrW$(7889)
Case "å": c = ChrW$(7891)
Case "æ": c = ChrW$(7893)
Case "ç": c = ChrW$(7895)
Case "é": c = ChrW$(7897)
Case "¬": c = ChrW$(417)
Case "í": c = ChrW$(7899)
Case "ê": c = ChrW$(7901)
Case "ë": c = ChrW$(7903)
Case "ì": c = ChrW$(7905)
Case "î": c = ChrW$(7907)
Case "i": c = ChrW$(105)
Case "Ý": c = ChrW$(237)
Case "×": c = ChrW$(236)
Case "Ø": c = ChrW$(7881)
Case "Ü": c = ChrW$(297)
Case "Þ": c = ChrW$(7883)
Case "u": c = ChrW$(117)
Case "ó": c = ChrW$(250)
Case "ï": c = ChrW$(249)
Case "ñ": c = ChrW$(7911)
Case "ò": c = ChrW$(361)
Case "ô": c = ChrW$(7909)
'Case "*": c = ChrW$(432)
Case "": c = ChrW$(432)
Case "ø": c = ChrW$(7913)
Case "õ": c = ChrW$(7915)
Case "ö": c = ChrW$(7917)
Case "÷": c = ChrW$(7919)
Case "ù": c = ChrW$(7921)
Case "y": c = ChrW$(121)
Case "ý": c = ChrW$(253)
Case "ú": c = ChrW$(7923)
Case "û": c = ChrW$(7927)
Case "ü": c = ChrW$(7929)
Case "þ": c = ChrW$(7925)
Case "®": c = ChrW$(273)
Case "A": c = ChrW$(65)
Case "¡": c = ChrW$(258)
Case "¢": c = ChrW$(194)
Case "E": c = ChrW$(69)
Case "£": c = ChrW$(202)
Case "O": c = ChrW$(79)
Case "¤": c = ChrW$(212)
Case "¥": c = ChrW$(416)
Case "I": c = ChrW$(73)
Case "U": c = ChrW$(85)
Case "¦": c = ChrW$(431)
Case "Y": c = ChrW$(89)
Case "§": c = ChrW$(272)
End Select
UNI = UNI + c
Next i
End Function