Đang lười nhưng bị kích và cũng đang cần ngay nên fix và nâng cấp code luôn
.
Bản sửa lỗi hàm
VNTyping . Thay thế "zwj", "oor", "oox", "ooj" thành "awj", "owr", "owx", "owj" là sửa được các lỗi trước đây. Code tôi sửa cho phép chuyển đổi cả CHỮ HOA (code cũ chỉ chữ thường).
[GPECODE=vb]
Function VNTyping(ByVal Text As String, ByVal InputMethod As String) As String
'Code goc: ndu96081631
'Sua loi va them chuyen doi chu HOA: Nguyen Duy Tuan
'InputMethod = "VNI" or "Telex"
Dim VN_Alp, VNI_Type, Telex_Type, I As Long, Temp
VNTyping = Text
VN_Alp = Array("à", "á", "â", "ã", "è", "é", "ê", "ì", "í", "ò", "ó", "ô", "õ", "ù", "ú", "ý", _
ChrW(259), ChrW(273), ChrW(297), ChrW(361), ChrW(417), ChrW(432), ChrW(7841), ChrW(7843), _
ChrW(7845), ChrW(7847), ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7855), ChrW(7857), ChrW(7859), _
ChrW(7861), ChrW(7863), ChrW(7865), ChrW(7867), ChrW(7869), ChrW(7871), ChrW(7873), _
ChrW(7875), ChrW(7877), ChrW(7879), ChrW(7881), ChrW(7883), ChrW(7885), ChrW(7887), _
ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), _
ChrW(7903), ChrW(7905), ChrW(7907), ChrW(7909), ChrW(7911), ChrW(7913), ChrW(7915), _
ChrW(7917), ChrW(7919), ChrW(7921), ChrW(7923), ChrW(7925), ChrW(7927), ChrW(7929), _
ChrW(192), ChrW(193), ChrW(194), ChrW(195), ChrW(200), ChrW(201), ChrW(202), _
ChrW(204), ChrW(205), ChrW(210), ChrW(211), ChrW(212), ChrW(213), ChrW(217), _
ChrW(218), ChrW(221), ChrW(258), ChrW(272), ChrW(296), ChrW(360), ChrW(416), _
ChrW(431), ChrW(7840), ChrW(7842), ChrW(7844), ChrW(7846), ChrW(7848), ChrW(7850), _
ChrW(7852), ChrW(7854), ChrW(7856), ChrW(7858), ChrW(7860), ChrW(7862), ChrW(7864), _
ChrW(7866), ChrW(7868), ChrW(7870), ChrW(7872), ChrW(7874), ChrW(7876), ChrW(7878), _
ChrW(7880), ChrW(7882), ChrW(7884), ChrW(7886), ChrW(7888), ChrW(7890), ChrW(7892), _
ChrW(7894), ChrW(7896), ChrW(7898), ChrW(7900), ChrW(7902), ChrW(7904), ChrW(7906), _
ChrW(7908), ChrW(7910), ChrW(7912), ChrW(7914), ChrW(7916), ChrW(7918), ChrW(7920), _
ChrW(7922), ChrW(7924), ChrW(7926), ChrW(7928))
VNI_Type = Array("a2", "a1", "a6", "a4", "e2", "e1", "e6", "i2", "i1", "o2", "o1", "o6", "o4", "u2", _
"u1", "y1", "a8", "d9", "i4", "u4", "o7", "u7", "a5", "a3", "a61", "a62", "a63", _
"a64", "a65", "a81", "a82", "a83", "a84", "a85", "e5", "e3", "e4", "e61", "e62", "e63", "e64", _
"e65", "i3", "i5", "o5", "o3", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", _
"o74", "o75", "u5", "u3", "u71", "u72", "u73", "u74", "u75", "y2", "y5", "y3", "y4", _
"A2", "A1", "A6", "A4", "E2", "E1", "E6", "I2", "I1", "O2", "O1", "O6", "O4", "U2", _
"U1", "Y1", "A8", "D9", "I4", "U4", "O7", "U7", "A5", "A3", "A61", "A62", "A63", _
"A64", "A65", "A81", "A82", "A83", "A84", "A85", "E5", "E3", "E4", "E61", "E62", "E63", "E64", _
"E65", "I3", "I5", "O5", "O3", "O61", "O62", "O63", "O64", "O65", "O71", "O72", "O73", _
"O74", "O75", "U5", "U3", "U71", "U72", "U73", "U74", "U75", "Y2", "Y5", "Y3", "Y4", _
"E62", "E63", "E64", "E65", "O61", "O62", "O63", "O64", "O65", "O71", "O72", "O73", "O74", _
"O75", "U71", "U72", "U73", "U74", "U75", "A1", "A2", "A3", "A4", "A5", "A8", "A6", "D9", _
"E1", "E2", "E3", "E4", "E5", "E6", "I1", "I2", "I3", "I4", "I5", "O1", "O2", "O3", "O4", _
"O5", "O6", "O7", "U1", "U2", "U3", "U4", "U5", "U7", "Y1", "Y2", "Y3", "Y4", "Y5")
Telex_Type = Array("af", "as", "aa", "ax", "ef", "es", "ee", "if", "is", "of", "os", "oo", "ox", "uf", _
"us", "ys", "aw", "dd", "ix", "ux", "ow", "uw", "aj", "ar", "aas", "aaf", "aar", "aax", _
"aaj", "aws", "awf", "awr", "awx", "awj", "ej", "er", "ex", "ees", "eef", "eer", "eex", _
"eej", "ir", "ij", "oj", "or", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", _
"owx", "owj", "uj", "ur", "uws", "uwf", "uwr", "uwx", "uwj", "yf", "yj", "yr", "yx", _
"AF", "AS", "AA", "AX", "EF", "ES", "EE", _
"IF", "IS", "OF", "OS", "OO", "OX", "UF", _
"US", "YS", "AW", "DD", "IX", "UX", "OW", _
"UW", "AJ", "AR", "AAS", "AAF", "AAR", "AAX", _
"AAJ", "AWS", "AWF", "AWR", "AWX", "AWJ", "EJ", _
"ER", "EX", "EES", "EEF", "EER", "EEX", "EEJ", _
"IR", "IJ", "OJ", "OR", "OOS", "OOF", "OOR", _
"OOX", "OOJ", "OWS", "OWF", "OWR", "OWX", "OWJ", _
"UJ", "UR", "UWS", "UWF", "UWR", "UWX", "UWJ", _
"YF", "YJ", "YR", "YX")
Select Case UCase(InputMethod)
Case Is = "TELEX"
Temp = Telex_Type
Case Is = "VNI"
Temp = VNI_Type
End Select
For I = 0 To UBound(VN_Alp)
VNTyping = Replace(VNTyping, VN_Alp(I), Temp(I))
VNTyping = Replace(VNTyping, VN_Alp(I), Left(Temp(I), 1) & Mid(Temp(I), 2, Len(Temp(I))))
Next I
End Function
'---- Ham UniConvert
Function UniConvert(ByVal Text As String, ByVal InputMethod As String) As String
Dim VNI_Type, Telex_Type, CharCode, Temp, I As Long
'Code goc: ndu
'Sua loi va them chuyen doi chu HOA: Nguyen Duy Tuan
UniConvert = Text
VNI_Type = Array("a81", "a82", "a83", "a84", "a85", "a61", "a62", "a63", "a64", "a65", "e61", _
"e62", "e63", "e64", "e65", "o61", "o62", "o63", "o64", "o65", "o71", "o72", "o73", "o74", _
"o75", "u71", "u72", "u73", "u74", "u75", "a1", "a2", "a3", "a4", "a5", "a8", "a6", "d9", _
"e1", "e2", "e3", "e4", "e5", "e6", "i1", "i2", "i3", "i4", "i5", "o1", "o2", "o3", "o4", _
"o5", "o6", "o7", "u1", "u2", "u3", "u4", "u5", "u7", "y1", "y2", "y3", "y4", "y5", _
"A81", "A82", "A83", "A84", "A85", "A61", "A62", "A63", "A64", "A65", "E61", _
"E62", "E63", "E64", "E65", "O61", "O62", "O63", "O64", "O65", "O71", "O72", "O73", "O74", _
"O75", "U71", "U72", "U73", "U74", "U75", "A1", "A2", "A3", "A4", "A5", "A8", "A6", "D9", _
"E1", "E2", "E3", "E4", "E5", "E6", "I1", "I2", "I3", "I4", "I5", "O1", "O2", "O3", "O4", _
"O5", "O6", "O7", "U1", "U2", "U3", "U4", "U5", "U7", "Y1", "Y2", "Y3", "Y4", "Y5")
Telex_Type = Array("aws", "awf", "awr", "awx", "awj", "aas", "aaf", "aar", "aax", "aaj", "ees", _
"eef", "eer", "eex", "eej", "oos", "oof", "oor", "oox", "ooj", "ows", "owf", "owr", "owx", _
"owj", "uws", "uwf", "uwr", "uwx", "uwj", "as", "af", "ar", "ax", "aj", "aw", "aa", "dd", _
"es", "ef", "er", "ex", "ej", "ee", "is", "if", "ir", "ix", "ij", "os", "of", "or", "ox", _
"oj", "oo", "ow", "us", "uf", "ur", "ux", "uj", "uw", "ys", "yf", "yr", "yx", "yj", _
"AF", "AS", "AA", "AX", "EF", "ES", "EE", _
"IF", "IS", "OF", "OS", "OO", "OX", "UF", _
"US", "YS", "AW", "DD", "IX", "UX", "OW", _
"UW", "AJ", "AR", "AAS", "AAF", "AAR", "AAX", _
"AAJ", "AWS", "AWF", "AWR", "AWX", "AWJ", "EJ", _
"ER", "EX", "EES", "EEF", "EER", "EEX", "EEJ", _
"IR", "IJ", "OJ", "OR", "OOS", "OOF", "OOR", _
"OOX", "OOJ", "OWS", "OWF", "OWR", "OWX", "OWJ", _
"UJ", "UR", "UWS", "UWF", "UWR", "UWX", "UWJ", _
"YF", "YJ", "YR", "YX")
CharCode = Array(ChrW(7855), ChrW(7857), ChrW(7859), ChrW(7861), ChrW(7863), ChrW(7845), ChrW(7847), _
ChrW(7849), ChrW(7851), ChrW(7853), ChrW(7871), ChrW(7873), ChrW(7875), ChrW(7877), ChrW(7879), _
ChrW(7889), ChrW(7891), ChrW(7893), ChrW(7895), ChrW(7897), ChrW(7899), ChrW(7901), ChrW(7903), _
ChrW(7905), ChrW(7907), ChrW(7913), ChrW(7915), ChrW(7917), ChrW(7919), ChrW(7921), ChrW(225), _
ChrW(224), ChrW(7843), ChrW(227), ChrW(7841), ChrW(259), ChrW(226), ChrW(273), ChrW(233), ChrW(232), _
ChrW(7867), ChrW(7869), ChrW(7865), ChrW(234), ChrW(237), ChrW(236), ChrW(7881), ChrW(297), ChrW(7883), _
ChrW(243), ChrW(242), ChrW(7887), ChrW(245), ChrW(7885), ChrW(244), ChrW(417), ChrW(250), ChrW(249), _
ChrW(7911), ChrW(361), ChrW(7909), ChrW(432), ChrW(253), ChrW(7923), ChrW(7927), ChrW(7929), ChrW(7925), _
ChrW(192), ChrW(193), ChrW(194), ChrW(195), ChrW(200), ChrW(201), ChrW(202), _
ChrW(204), ChrW(205), ChrW(210), ChrW(211), ChrW(212), ChrW(213), ChrW(217), _
ChrW(218), ChrW(221), ChrW(258), ChrW(272), ChrW(296), ChrW(360), ChrW(416), _
ChrW(431), ChrW(7840), ChrW(7842), ChrW(7844), ChrW(7846), ChrW(7848), ChrW(7850), _
ChrW(7852), ChrW(7854), ChrW(7856), ChrW(7858), ChrW(7860), ChrW(7862), ChrW(7864), _
ChrW(7866), ChrW(7868), ChrW(7870), ChrW(7872), ChrW(7874), ChrW(7876), ChrW(7878), _
ChrW(7880), ChrW(7882), ChrW(7884), ChrW(7886), ChrW(7888), ChrW(7890), ChrW(7892), _
ChrW(7894), ChrW(7896), ChrW(7898), ChrW(7900), ChrW(7902), ChrW(7904), ChrW(7906), _
ChrW(7908), ChrW(7910), ChrW(7912), ChrW(7914), ChrW(7916), ChrW(7918), ChrW(7920), _
ChrW(7922), ChrW(7924), ChrW(7926), ChrW(7928))
Select Case UCase(InputMethod)
Case Is = "VNI": Temp = VNI_Type
Case Is = "TELEX": Temp = Telex_Type
End Select
For I = 0 To UBound(CharCode)
UniConvert = Replace(UniConvert, Temp(I), CharCode(I))
UniConvert = Replace(UniConvert, UCase(Temp(I)), UCase(CharCode(I)))
Next I
End Function
[/GPECODE]