Lequocvan
Thành viên thường trực
Function vnd(ByVal NumCurrency As Currency) As String
Static CharVND(9) As String, Bangchu As String, i As Integer
Dim Sole, SoDoi As Integer, PhanChan, Ten As String
Dim DonViTien As String, DonViLe As String
Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer
Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer
DonViTien = ";111;1ED3;6E;67" ' dong viet nam
DonViLe = ";78;75" ' xu
If NumCurrency = 0 Then
vnd = UnicodeChar(";4B;68;F4;6E;67;20" & DonViTien)
Exit Function
End If
If NumCurrency > 922337203685477# Then ' So lon nhat cua CURRENCY
vnd = UnicodeChar(";4B;68;F4;6E;67;20;111;1ED5;69;20;111;1B0;1EE3;63;20;73" & _
";1ED1;20;6C;1EDB;6E;20;68;1A1;6E;20;39;32;32;2C;33;33;37" & _
";2C;32;30;33;2C;36;38;35;2C;34;37;37")
Exit Function
End If
CharVND(1) = ";6D;1ED9;74" ' mo^.t
CharVND(2) = ";68;61;69" ' hai
CharVND(3) = ";62;61" ' ba
CharVND(4) = ";62;1ED1;6E" ' bo^'n
CharVND(5) = ";6E;103;6D" ' na(m
CharVND(6) = ";73;E1;75"
CharVND(7) = ";62;1EA3;79"
CharVND(8) = ";74;E1;6D"
CharVND(9) = ";63;68;ED;6E"
Sole = Int((NumCurrency - Int(NumCurrency)) * 100) ' 2 kí s?
PhanChan = Trim$(str$(Int(NumCurrency)))
PhanChan = Space(15 - Len(PhanChan)) + PhanChan
NganTy = Val(Left(PhanChan, 3))
Ty = Val(Mid$(PhanChan, 4, 3))
Trieu = Val(Mid$(PhanChan, 7, 3))
Ngan = Val(Mid$(PhanChan, 10, 3))
Dong = Val(Mid$(PhanChan, 13, 3))
If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then
Bangchu = ";6B;68;F4;6E;67;20" + DonViTien + ";20"
i = 5
Else
Bangchu = ""
i = 0
End If
'-----------------------------------------------------
' Bat dau doi so sang chu
'-----------------------------------------------------
While i <= 5
Select Case i
Case 0
SoDoi = NganTy
'Ten = ";6E;67;E0;6E;20;74;1EF7" ' ngan ty
Ten = ";6E;67;68;EC;6E;20;74;1EF7"
'---------
Case 1
SoDoi = Ty
Ten = ";74;1EF7" ' ty
'---------
Case 2
SoDoi = Trieu
Ten = ";74;72;69;1EC7;75" ' trieu
'---------
Case 3
SoDoi = Ngan
Ten = ";6E;67;68;EC;6E"
'Ten = ";6E;67;E0;6E" ' ngan
'=UnicodeChar("6E;67;E0;6E")
'---------
Case 4
SoDoi = Dong
Ten = DonViTien ' dong
'---------
Case 5
SoDoi = Sole
Ten = DonViLe ' xu
End Select
'---------
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
If Right(Bangchu, 3) = ";20" Then
Bangchu = Left(Bangchu, Len(Bangchu) - 3)
End If
'---------
Bangchu = Bangchu + IIf(Len(Bangchu) = 0, "", ";2C;20") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
Bangchu = Bangchu + ";6C;1EBB;20"
Else
If Muoi <> 0 Then
Bangchu = Bangchu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20")
End If
End If
If Muoi <> 0 And DonVi = 5 Then
Bangchu = Bangchu + ";6C;103;6D;20" + Ten + ";20"
Else
If Muoi > 1 And DonVi = 1 Then
Bangchu = Bangchu + ";6D;1ED1;74;20" + Ten + ";20"
Else
Bangchu = Bangchu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) + ";20"
End If
End If
Else
Bangchu = Bangchu + IIf(i = 4, DonViTien + "", "")
End If
i = i + 1
Wend
'-----------------------------------------------------
If Sole = 0 Then
Bangchu = Bangchu + IIf(Right(Bangchu, 3) = ";20", "", ";20") + ";63;68;1EB5;6E"
End If
'-----------------------------------------------------
'
If Right(Bangchu, 3) = ";20" Then
Bangchu = Left(Bangchu, Len(Bangchu) - 3)
End If
Bangchu = Bangchu + IIf(Len(Bangchu) = 0, "", ";2e;20")
If Sole = 0 Then
Bangchu = Bangchu + IIf(Right(Bangchu, 3) = 0, "", ";20")
End If
'-----------------------------------------------------
Bangchu = UnicodeChar(Bangchu)
'Doi sang tieng viet theo Unicode
'Doi chu cai dau tien thanh chu hoa
Mid$(Bangchu, 1, 1) = UCase$(Mid$(Bangchu, 1, 1))
vnd = Bangchu
End Function
'-----------------------------------------------------
khi em dùng =vnd(1015) thì đọc là
[TABLE="width: 210"]
[TR]
[TD="width: 210"]Một nghìn, mười lăm đồng chẵn.[/TD]
[/TR]
[/TABLE]
Static CharVND(9) As String, Bangchu As String, i As Integer
Dim Sole, SoDoi As Integer, PhanChan, Ten As String
Dim DonViTien As String, DonViLe As String
Dim NganTy As Integer, Ty As Integer, Trieu As Integer, Ngan As Integer
Dim Dong As Integer, Tram As Integer, Muoi As Integer, DonVi As Integer
DonViTien = ";111;1ED3;6E;67" ' dong viet nam
DonViLe = ";78;75" ' xu
If NumCurrency = 0 Then
vnd = UnicodeChar(";4B;68;F4;6E;67;20" & DonViTien)
Exit Function
End If
If NumCurrency > 922337203685477# Then ' So lon nhat cua CURRENCY
vnd = UnicodeChar(";4B;68;F4;6E;67;20;111;1ED5;69;20;111;1B0;1EE3;63;20;73" & _
";1ED1;20;6C;1EDB;6E;20;68;1A1;6E;20;39;32;32;2C;33;33;37" & _
";2C;32;30;33;2C;36;38;35;2C;34;37;37")
Exit Function
End If
CharVND(1) = ";6D;1ED9;74" ' mo^.t
CharVND(2) = ";68;61;69" ' hai
CharVND(3) = ";62;61" ' ba
CharVND(4) = ";62;1ED1;6E" ' bo^'n
CharVND(5) = ";6E;103;6D" ' na(m
CharVND(6) = ";73;E1;75"
CharVND(7) = ";62;1EA3;79"
CharVND(8) = ";74;E1;6D"
CharVND(9) = ";63;68;ED;6E"
Sole = Int((NumCurrency - Int(NumCurrency)) * 100) ' 2 kí s?
PhanChan = Trim$(str$(Int(NumCurrency)))
PhanChan = Space(15 - Len(PhanChan)) + PhanChan
NganTy = Val(Left(PhanChan, 3))
Ty = Val(Mid$(PhanChan, 4, 3))
Trieu = Val(Mid$(PhanChan, 7, 3))
Ngan = Val(Mid$(PhanChan, 10, 3))
Dong = Val(Mid$(PhanChan, 13, 3))
If NganTy = 0 And Ty = 0 And Trieu = 0 And Ngan = 0 And Dong = 0 Then
Bangchu = ";6B;68;F4;6E;67;20" + DonViTien + ";20"
i = 5
Else
Bangchu = ""
i = 0
End If
'-----------------------------------------------------
' Bat dau doi so sang chu
'-----------------------------------------------------
While i <= 5
Select Case i
Case 0
SoDoi = NganTy
'Ten = ";6E;67;E0;6E;20;74;1EF7" ' ngan ty
Ten = ";6E;67;68;EC;6E;20;74;1EF7"
'---------
Case 1
SoDoi = Ty
Ten = ";74;1EF7" ' ty
'---------
Case 2
SoDoi = Trieu
Ten = ";74;72;69;1EC7;75" ' trieu
'---------
Case 3
SoDoi = Ngan
Ten = ";6E;67;68;EC;6E"
'Ten = ";6E;67;E0;6E" ' ngan
'=UnicodeChar("6E;67;E0;6E")
'---------
Case 4
SoDoi = Dong
Ten = DonViTien ' dong
'---------
Case 5
SoDoi = Sole
Ten = DonViLe ' xu
End Select
'---------
If SoDoi <> 0 Then
Tram = Int(SoDoi / 100)
Muoi = Int((SoDoi - Tram * 100) / 10)
DonVi = (SoDoi - Tram * 100) - Muoi * 10
If Right(Bangchu, 3) = ";20" Then
Bangchu = Left(Bangchu, Len(Bangchu) - 3)
End If
'---------
Bangchu = Bangchu + IIf(Len(Bangchu) = 0, "", ";2C;20") + _
IIf(Tram <> 0, Trim(CharVND(Tram)) + ";20;74;72;103;6D;20", "")
If Muoi = 0 And Tram <> 0 And DonVi <> 0 Then
Bangchu = Bangchu + ";6C;1EBB;20"
Else
If Muoi <> 0 Then
Bangchu = Bangchu + IIf(Muoi <> 0 And Muoi <> 1, _
Trim(CharVND(Muoi)) + ";20;6D;1B0;1A1;69;20", ";6D;1B0;1EDD;69;20")
End If
End If
If Muoi <> 0 And DonVi = 5 Then
Bangchu = Bangchu + ";6C;103;6D;20" + Ten + ";20"
Else
If Muoi > 1 And DonVi = 1 Then
Bangchu = Bangchu + ";6D;1ED1;74;20" + Ten + ";20"
Else
Bangchu = Bangchu + IIf(DonVi <> 0, Trim(CharVND(DonVi)) + ";20" + Ten, Ten) + ";20"
End If
End If
Else
Bangchu = Bangchu + IIf(i = 4, DonViTien + "", "")
End If
i = i + 1
Wend
'-----------------------------------------------------
If Sole = 0 Then
Bangchu = Bangchu + IIf(Right(Bangchu, 3) = ";20", "", ";20") + ";63;68;1EB5;6E"
End If
'-----------------------------------------------------
'
If Right(Bangchu, 3) = ";20" Then
Bangchu = Left(Bangchu, Len(Bangchu) - 3)
End If
Bangchu = Bangchu + IIf(Len(Bangchu) = 0, "", ";2e;20")
If Sole = 0 Then
Bangchu = Bangchu + IIf(Right(Bangchu, 3) = 0, "", ";20")
End If
'-----------------------------------------------------
Bangchu = UnicodeChar(Bangchu)
'Doi sang tieng viet theo Unicode
'Doi chu cai dau tien thanh chu hoa
Mid$(Bangchu, 1, 1) = UCase$(Mid$(Bangchu, 1, 1))
vnd = Bangchu
End Function
'-----------------------------------------------------
khi em dùng =vnd(1015) thì đọc là
[TABLE="width: 210"]
[TR]
[TD="width: 210"]Một nghìn, mười lăm đồng chẵn.[/TD]
[/TR]
[/TABLE]