Option Explicit
Const Ucode = "C1;C0;1EA2;C3;1EA0;C2;1EA6;1EA4;1EA8;1EAA;1EAC;102;1EAE;1EB0;1EB2;1EB4;1EB6;C9;C8;1EBA;1EBC;1EB8;CA;1EBE;1EC0;1EC2;1EC4;1EC6;CD;CC;1EC8;128;1ECA;D3;D2;1ECE;D5;1ECC;D4;1ED0;1ED2;1ED4;1ED6;1ED8;1A0;1EDA;1EDC;1EDE;1EE0;1EE2;DD;1EF6;1EF8;1EF4;110"
Const Lcode = "E1;E0;1EA3;E3;1EA1;E2;1EA7;1EA5;1EA9;1EAB;1EAD;103;1EAF;1EB1;1EB3;1EB5;1EB7;1EAB;1EA9;1EBB;1EBD;1EB9;EA;1EBF;1EC1;1EC3;1EC5;1EC7;ED;E8;1EC9;129;1ECB;1EC3;1EC1;1ECF;1EBF;1ECD;1EC5;1ED1;1ED3;1ED5;1ED7;1ED9;1A1;1EDB;1EDD;1EDF;1EE1;1EE3;ED;1EF7;1EF9;1EF5;111"
'--------------------------------------------------------
'Ham chuyen doi chuoi Hex thành Long
Function HexToLong(ByVal sHex As String) As Long
On Error Resume Next
HexToLong = Val("&H" & sHex & "&")
If Err Then
On Error GoTo 0
HexToLong = Val("&H" & sHex)
End If
End Function
'------------------------------------------------------
'Ham chuyen chu hoa thanh chu thuong
Public Function mLow(ByVal Ch)
Dim i, j, Tm1, Tm2, Kt, Cod, NewCh
Tm1 = Split(Ucode, ";")
Tm2 = Split(Lcode, ";")
For i = 1 To Len(Ch)
Kt = Mid(Ch, i, 1)
Cod = Hex(AscW(Kt))
If InStr(1, Ucode, Cod) Then
For j = 0 To UBound(Tm1)
If Tm1(j) = Cod Then
NewCh = NewCh & ChrW(HexToLong(Tm2(j)))
Exit For
End If
Next j
Else
NewCh = NewCh & LCase(Kt)
End If
Next i
mLow = NewCh
End Function
'---------------------------------------------------------------
'H chuyen chu Hoa dau tu
Public Function mProp(ByVal Ch, Optional Ok As Boolean = True)
Dim i, j, Tm1, Tm2, Kt, Cod, NewCh
Tm1 = Split(Ucode, ";")
Tm2 = Split(Lcode, ";")
For i = 1 To Len(Ch)
Kt = Mid(Ch, i, 1)
If Ok Then
Cod = Hex(AscW(Kt))
If InStr(1, Lcode, Cod) Then
For j = 0 To UBound(Tm2)
If Tm2(j) = Cod Then
NewCh = NewCh & ChrW(HexToLong(Tm1(j)))
Exit For
End If
Next j
Else
NewCh = NewCh & UCase(Kt)
End If
Else
NewCh = NewCh & Kt
End If
Ok = Kt = " "
Next i
mProp = NewCh
End Function