Hướng Dẫn Sử Dụng Function UniVBA và MsgUni Để Nhập Tiếng Việt (Font Unicode) Trong VBA
Gửi các bạn 2 hàm chuyển đổi, hỗ trợ nhập tiếng việt trực tiếp trong VBA.
17737
1. Hàm UniVBA(Str)
UniVBA("Nguye64n Ca3nh Hoa2ng Danh") = "Nguyễn Cảnh Hoàng Danh"
Public Function UniVBA(Str As String) As String
Dim Ma As String, MaLuu As String, i As Long, a As Long
a = 1
For i = a To Len(Str)
i = a
Ma = Mid(Str, i, 3)
MaLuu = Ma
Select Case Ma
Case "a81": Ma = ChrW(7855): Case "A81": Ma = ChrW(7854)
Case "a82": Ma = ChrW(7857): Case "A82": Ma = ChrW(7856)
Case "a83": Ma = ChrW(7859): Case "A83": Ma = ChrW(7858)
Case "a84": Ma = ChrW(7861): Case "A84": Ma = ChrW(7860)
Case "a85": Ma = ChrW(7863): Case "A85": Ma = ChrW(7862)
Case "a61": Ma = ChrW(7845): Case "A61": Ma = ChrW(7844)
Case "a62": Ma = ChrW(7847): Case "A62": Ma = ChrW(7846)
Case "a63": Ma = ChrW(7849): Case "A63": Ma = ChrW(7848)
Case "a64": Ma = ChrW(7851): Case "A64": Ma = ChrW(7850)
Case "a65": Ma = ChrW(7853): Case "A65": Ma = ChrW(7852)
Case "e61": Ma = ChrW(7871): Case "E61": Ma = ChrW(7870)
Case "e62": Ma = ChrW(7873): Case "E62": Ma = ChrW(7872)
Case "e63": Ma = ChrW(7875): Case "E63": Ma = ChrW(7874)
Case "e64": Ma = ChrW(7877): Case "E64": Ma = ChrW(7876)
Case "e65": Ma = ChrW(7879): Case "E65": Ma = ChrW(7878)
Case "o61": Ma = ChrW(7889): Case "O61": Ma = ChrW(7888)
Case "o62": Ma = ChrW(7891): Case "O62": Ma = ChrW(7890)
Case "o63": Ma = ChrW(7893): Case "O63": Ma = ChrW(7892)
Case "o64": Ma = ChrW(7895): Case "O64": Ma = ChrW(7894)
Case "o65": Ma = ChrW(7897): Case "O65": Ma = ChrW(7896)
Case "o71": Ma = ChrW(7899): Case "O71": Ma = ChrW(7898)
Case "o72": Ma = ChrW(7901): Case "O72": Ma = ChrW(7900)
Case "o73": Ma = ChrW(7903): Case "O73": Ma = ChrW(7902)
Case "o74": Ma = ChrW(7905): Case "O74": Ma = ChrW(7904)
Case "o75": Ma = ChrW(7907): Case "O75": Ma = ChrW(7906)
Case "u71": Ma = ChrW(7913): Case "U71": Ma = ChrW(7912)
Case "u72": Ma = ChrW(7915): Case "U72": Ma = ChrW(7914)
Case "u73": Ma = ChrW(7917): Case "U73": Ma = ChrW(7916)
Case "u74": Ma = ChrW(7919): Case "U74": Ma = ChrW(7918)
Case "u75": Ma = ChrW(7921): Case "U75": Ma = ChrW(7920)
End Select
If Ma <> MaLuu Then
UniVBA = UniVBA & Ma
a = i + 3
Else
Ma = Mid(Str, i, 2)
MaLuu = Ma
Select Case Ma
Case "a1": Ma = ChrW(225): Case "A1": Ma = ChrW(193)
Case "a2": Ma = ChrW(224): Case "A2": Ma = ChrW(192)
Case "a3": Ma = ChrW(7843): Case "A3": Ma = ChrW(7842)
Case "a4": Ma = ChrW(227): Case "A4": Ma = ChrW(195)
Case "a5": Ma = ChrW(7841): Case "A5": Ma = ChrW(7840)
Case "a8": Ma = ChrW(259): Case "A8": Ma = ChrW(258)
Case "a6": Ma = ChrW(226): Case "A6": Ma = ChrW(194)
Case "d9": Ma = ChrW(273): Case "D9": Ma = ChrW(272)
Case "e1": Ma = ChrW(233): Case "E1": Ma = ChrW(201)
Case "e2": Ma = ChrW(232): Case "E2": Ma = ChrW(200)
Case "e3": Ma = ChrW(7867): Case "E3": Ma = ChrW(7866)
Case "e4": Ma = ChrW(7869): Case "E4": Ma = ChrW(7868)
Case "e5": Ma = ChrW(7865): Case "E5": Ma = ChrW(7864)
Case "e6": Ma = ChrW(234): Case "E6": Ma = ChrW(202)
Case "i1": Ma = ChrW(237): Case "I1": Ma = ChrW(205)
Case "i2": Ma = ChrW(236): Case "I2": Ma = ChrW(204)
Case "i3": Ma = ChrW(7881): Case "I3": Ma = ChrW(7880)
Case "i4": Ma = ChrW(297): Case "I4": Ma = ChrW(296)
Case "i5": Ma = ChrW(7883): Case "I5": Ma = ChrW(7882)
Case "o1": Ma = ChrW(243): Case "O1": Ma = ChrW(211)
Case "o2": Ma = ChrW(242): Case "O2": Ma = ChrW(210)
Case "o3": Ma = ChrW(7887): Case "O3": Ma = ChrW(7886)
Case "o4": Ma = ChrW(245): Case "O4": Ma = ChrW(213)
Case "o5": Ma = ChrW(7885): Case "O5": Ma = ChrW(7884)
Case "o6": Ma = ChrW(244): Case "O6": Ma = ChrW(212)
Case "o7": Ma = ChrW(417): Case "O7": Ma = ChrW(416)
Case "u1": Ma = ChrW(250): Case "U1": Ma = ChrW(218)
Case "u2": Ma = ChrW(249): Case "U2": Ma = ChrW(217)
Case "u3": Ma = ChrW(7911): Case "U3": Ma = ChrW(7910)
Case "u4": Ma = ChrW(361): Case "U4": Ma = ChrW(360)
Case "u5": Ma = ChrW(7909): Case "U5": Ma = ChrW(7908)
Case "u7": Ma = ChrW(432): Case "U7": Ma = ChrW(431)
Case "y1": Ma = ChrW(253): Case "Y1": Ma = ChrW(221)
Case "y2": Ma = ChrW(7923): Case "Y2": Ma = ChrW(7922)
Case "y3": Ma = ChrW(7927): Case "Y3": Ma = ChrW(7926)
Case "y4": Ma = ChrW(7929): Case "Y4": Ma = ChrW(7928)
Case "y5": Ma = ChrW(7925): Case "Y5": Ma = ChrW(7924)
End Select
If Ma <> MaLuu Then
UniVBA = UniVBA & Ma
a = i + 2
Else
UniVBA = UniVBA & Mid(Str, i, 1)
a = i + 1
End If
End If
Next i
End Function
2. Hàm MsgUni
Hàm MsgUni được sự hỗ trợ của Hàm API MessageBox và UniVBA
Public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxW" (ByVal hwnd As Long, _
ByVal lpText As Long, _
ByVal lpCaption As Long, _
ByVal wType As Long) As Long
Public Function MsgUni(ByVal Chuoi As String, Optional Bieutuong As VbMsgBoxStyle = 64, _
Optional ByVal Tieude As String = "Tho6ng ba1o !", _
Optional ByVal Khac As Long = 0) As VbMsgBoxResult
MsgUni = MessageBox(Khac, StrPtr(UniVBA(Chuoi)), StrPtr(UniVBA(Tieude)), Bieutuong)
End Function
Với các hàm trên ta có thể nhập chữ tiếng việt trên VBA khi xuất dữ liệu ra Worksheet, Captain của application, Msgbox, PopManu..
Tuy nhiên hàm trên vẫn chưa áp dụng được cho Captain trên userform
Và đây là một hàm chuyển đổi Uni sưu tầm trên Caulacbovb.com :
Public Function Uni(sText As String)
Dim i As Integer, J As Integer
Dim sCurChar As String, sPreChar As String, sPreTxt As String
For J = 1 To 2
For i = 2 To Len(sText)
sCurChar = Mid(sText, i, 1)
sPreTxt = Left(sText, i – 2)
sPreChar = Mid(sText, i – 1, 1)
Select Case sCurChar
Case "1"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&HE1) & Right(sText, Len(sText) – i)
Case "A": sText = sPreTxt & ChrW$(&HC1) & Right(sText, Len(sText) – i)
Case ChrW$(&HE2): sText = sPreTxt & ChrW$(&H1EA5) & Right(sText, Len(sText) – i)
Case ChrW$(&HC2): sText = sPreTxt & ChrW$(&H1EA4) & Right(sText, Len(sText) – i)
Case ChrW$(&H103): sText = sPreTxt & ChrW$(&H1EAF) & Right(sText, Len(sText) – i)
Case ChrW$(&H102): sText = sPreTxt & ChrW$(&H1EAE) & Right(sText, Len(sText) – i)
'e
Case "e": sText = sPreTxt & ChrW$(&HE9) & Right(sText, Len(sText) – i)
Case "E": sText = sPreTxt & ChrW$(&HC9) & Right(sText, Len(sText) – i)
Case ChrW$(&HEA): sText = sPreTxt & ChrW$(&H1EBF) & Right(sText, Len(sText) – i)
Case ChrW$(&HCA): sText = sPreTxt & ChrW$(&H1EBE) & Right(sText, Len(sText) – i)
'i
Case "i": sText = sPreTxt & ChrW$(&HED) & Right(sText, Len(sText) – i)
Case "I": sText = sPreTxt & ChrW$(&HCD) & Right(sText, Len(sText) – i)
'o
Case "o": sText = sPreTxt & ChrW$(&HF3) & Right(sText, Len(sText) – i)
Case "O": sText = sPreTxt & ChrW$(&HD3) & Right(sText, Len(sText) – i)
Case ChrW$(&HF4): sText = sPreTxt & ChrW$(&H1ED1) & Right(sText, Len(sText) – i)
Case ChrW$(&HD4): sText = sPreTxt & ChrW$(&H1ED0) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A1): sText = sPreTxt & ChrW$(&H1EDB) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A0): sText = sPreTxt & ChrW$(&H1EDA) & Right(sText, Len(sText) – i)
'u
Case "u": sText = sPreTxt & ChrW$(&HFA) & Right(sText, Len(sText) – i)
Case "U": sText = sPreTxt & ChrW$(&HDA) & Right(sText, Len(sText) – i)
Case ChrW$(&H1B0): sText = sPreTxt & ChrW$(&H1EE9) & Right(sText, Len(sText) – i)
Case ChrW$(&H1AF): sText = sPreTxt & ChrW$(&H1EE8) & Right(sText, Len(sText) – i)
'y
Case "y": sText = sPreTxt & ChrW$(&HFD) & Right(sText, Len(sText) – i)
Case "Y": sText = sPreTxt & ChrW$(&HDD) & Right(sText, Len(sText) – i)
End Select
Case "2"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&HE0) & Right(sText, Len(sText) – i)
Case "A": sText = sPreTxt & ChrW$(&HC0) & Right(sText, Len(sText) – i)
Case ChrW$(&HE2): sText = sPreTxt & ChrW$(&H1EA7) & Right(sText, Len(sText) – i)
Case ChrW$(&HC2): sText = sPreTxt & ChrW$(&H1EA6) & Right(sText, Len(sText) – i)
Case ChrW$(&H103): sText = sPreTxt & ChrW$(&H1EB1) & Right(sText, Len(sText) – i)
Case ChrW$(&H102): sText = sPreTxt & ChrW$(&H1EB0) & Right(sText, Len(sText) – i)
'e
Case "e": sText = sPreTxt & ChrW$(&HE8) & Right(sText, Len(sText) – i)
Case "E": sText = sPreTxt & ChrW$(&HC8) & Right(sText, Len(sText) – i)
Case ChrW$(&HEA): sText = sPreTxt & ChrW$(&H1EC1) & Right(sText, Len(sText) – i)
Case ChrW$(&HCA): sText = sPreTxt & ChrW$(&H1EC0) & Right(sText, Len(sText) – i)
'i
Case "i": sText = sPreTxt & ChrW$(&HEC) & Right(sText, Len(sText) – i)
Case "I": sText = sPreTxt & ChrW$(&HCC) & Right(sText, Len(sText) – i)
'o
Case "o": sText = sPreTxt & ChrW$(&HF2) & Right(sText, Len(sText) – i)
Case "O": sText = sPreTxt & ChrW$(&HD2) & Right(sText, Len(sText) – i)
Case ChrW$(&HF4): sText = sPreTxt & ChrW$(&H1ED3) & Right(sText, Len(sText) – i)
Case ChrW$(&HD4): sText = sPreTxt & ChrW$(&H1ED2) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A1): sText = sPreTxt & ChrW$(&H1EDD) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A0): sText = sPreTxt & ChrW$(&H1EDC) & Right(sText, Len(sText) – i)
'u
Case "u": sText = sPreTxt & ChrW$(&HF9) & Right(sText, Len(sText) – i)
Case "U": sText = sPreTxt & ChrW$(&HD9) & Right(sText, Len(sText) – i)
Case ChrW$(&H1B0): sText = sPreTxt & ChrW$(&H1EEB) & Right(sText, Len(sText) – i)
Case ChrW$(&H1AF): sText = sPreTxt & ChrW$(&H1EEA) & Right(sText, Len(sText) – i)
'y
Case "y": sText = sPreTxt & ChrW$(&H1EF3) & Right(sText, Len(sText) – i)
Case "Y": sText = sPreTxt & ChrW$(&H1EF2) & Right(sText, Len(sText) – i)
End Select
Case "3"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&H1EA3) & Right(sText, Len(sText) – i)
Case "A": sText = sPreTxt & ChrW$(&H1EA2) & Right(sText, Len(sText) – i)
Case ChrW$(&HE2): sText = sPreTxt & ChrW$(&H1EA9) & Right(sText, Len(sText) – i)
Case ChrW$(&HC2): sText = sPreTxt & ChrW$(&H1EA8) & Right(sText, Len(sText) – i)
Case ChrW$(&H103): sText = sPreTxt & ChrW$(&H1EB3) & Right(sText, Len(sText) – i)
Case ChrW$(&H102): sText = sPreTxt & ChrW$(&H1EB2) & Right(sText, Len(sText) – i)
'e
Case "e": sText = sPreTxt & ChrW$(&H1EBB) & Right(sText, Len(sText) – i)
Case "E": sText = sPreTxt & ChrW$(&H1EBA) & Right(sText, Len(sText) – i)
Case ChrW$(&HEA): sText = sPreTxt & ChrW$(&H1EC3) & Right(sText, Len(sText) – i)
Case ChrW$(&HCA): sText = sPreTxt & ChrW$(&H1EC2) & Right(sText, Len(sText) – i)
'i
Case "i": sText = sPreTxt & ChrW$(&H1EC9) & Right(sText, Len(sText) – i)
Case "I": sText = sPreTxt & ChrW$(&H1EC8) & Right(sText, Len(sText) – i)
'o
Case "o": sText = sPreTxt & ChrW$(&H1ECF) & Right(sText, Len(sText) – i)
Case "O": sText = sPreTxt & ChrW$(&H1ECE) & Right(sText, Len(sText) – i)
Case ChrW$(&HF4): sText = sPreTxt & ChrW$(&H1ED5) & Right(sText, Len(sText) – i)
Case ChrW$(&HD4): sText = sPreTxt & ChrW$(&H1ED4) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A1): sText = sPreTxt & ChrW$(&H1EDF) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A0): sText = sPreTxt & ChrW$(&H1EDE) & Right(sText, Len(sText) – i)
'u
Case "u": sText = sPreTxt & ChrW$(&H1EE7) & Right(sText, Len(sText) – i)
Case "U": sText = sPreTxt & ChrW$(&H1EE6) & Right(sText, Len(sText) – i)
Case ChrW$(&H1B0): sText = sPreTxt & ChrW$(&H1EED) & Right(sText, Len(sText) – i)
Case ChrW$(&H1AF): sText = sPreTxt & ChrW$(&H1EEC) & Right(sText, Len(sText) – i)
'y
Case "y": sText = sPreTxt & ChrW$(&H1EF7) & Right(sText, Len(sText) – i)
Case "Y": sText = sPreTxt & ChrW$(&H1EF6) & Right(sText, Len(sText) – i)
End Select
Case "4"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&HE3) & Right(sText, Len(sText) – i)
Case "A": sText = sPreTxt & ChrW$(&HC3) & Right(sText, Len(sText) – i)
Case ChrW$(&HE2): sText = sPreTxt & ChrW$(&H1EAB) & Right(sText, Len(sText) – i)
Case ChrW$(&HC2): sText = sPreTxt & ChrW$(&H1EAA) & Right(sText, Len(sText) – i)
Case ChrW$(&H103): sText = sPreTxt & ChrW$(&H1EB5) & Right(sText, Len(sText) – i)
Case ChrW$(&H102): sText = sPreTxt & ChrW$(&H1EB4) & Right(sText, Len(sText) – i)
'e
Case "e": sText = sPreTxt & ChrW$(&H1EBD) & Right(sText, Len(sText) – i)
Case "E": sText = sPreTxt & ChrW$(&H1EBC) & Right(sText, Len(sText) – i)
Case ChrW$(&HEA): sText = sPreTxt & ChrW$(&H1EC5) & Right(sText, Len(sText) – i)
Case ChrW$(&HCA): sText = sPreTxt & ChrW$(&H1EC4) & Right(sText, Len(sText) – i)
'i
Case "i": sText = sPreTxt & ChrW$(&H129) & Right(sText, Len(sText) – i)
Case "I": sText = sPreTxt & ChrW$(&H128) & Right(sText, Len(sText) – i)
'o
Case "o": sText = sPreTxt & ChrW$(&HF5) & Right(sText, Len(sText) – i)
Case "O": sText = sPreTxt & ChrW$(&HD5) & Right(sText, Len(sText) – i)
Case ChrW$(&HF4): sText = sPreTxt & ChrW$(&H1ED7) & Right(sText, Len(sText) – i)
Case ChrW$(&HD4): sText = sPreTxt & ChrW$(&H1ED6) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A1): sText = sPreTxt & ChrW$(&H1EE1) & Right(sText, Len(sText) – i)
Case ChrW$(&H1A0): sText = sPreTxt & ChrW$(&H1EE0) & Right(sText, Len(sText) – i)
'u
Case "u": sText = sPreTxt & ChrW$(&H169) & Right(sText, Len(sText) – i)
Case "U": sText = sPreTxt & ChrW$(&H168) & Right(sText, Len(sText) – i)
Case ChrW$(&H1B0): sText = sPreTxt & ChrW$(&H1EEF) & Right(sText, Len(sText) – i)
Case ChrW$(&H1AF): sText = sPreTxt & ChrW$(&H1EEE) & Right(sText, Len(sText) – i)
'y
Case "y": sText = sPreTxt & ChrW$(&H1EF9) & Right(sText, Len(sText) – i)
Case "Y": sText = sPreTxt & ChrW$(&H1EF8) & Right(sText, Len(sText) – i)
End Select
Code còn tiếp
code tiếp theo :
Case "5"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&H1EA1) & Right(sText, Len(sText) - i)
Case "A": sText = sPreTxt & ChrW$(&H1EA0) & Right(sText, Len(sText) - i)
Case ChrW$(&HE2): sText = sPreTxt & ChrW$(&H1EAD) & Right(sText, Len(sText) - i)
Case ChrW$(&HC2): sText = sPreTxt & ChrW$(&H1EAC) & Right(sText, Len(sText) - i)
Case ChrW$(&H103): sText = sPreTxt & ChrW$(&H1EB7) & Right(sText, Len(sText) - i)
Case ChrW$(&H102): sText = sPreTxt & ChrW$(&H1EB6) & Right(sText, Len(sText) - i)
'e
Case "e": sText = sPreTxt & ChrW$(&H1EB9) & Right(sText, Len(sText) - i)
Case "E": sText = sPreTxt & ChrW$(&H1EB8) & Right(sText, Len(sText) - i)
Case ChrW$(&HEA): sText = sPreTxt & ChrW$(&H1EC7) & Right(sText, Len(sText) - i)
Case ChrW$(&HCA): sText = sPreTxt & ChrW$(&H1EC6) & Right(sText, Len(sText) - i)
'i
Case "i": sText = sPreTxt & ChrW$(&H1ECB) & Right(sText, Len(sText) - i)
Case "I": sText = sPreTxt & ChrW$(&H1ECA) & Right(sText, Len(sText) - i)
'o
Case "o": sText = sPreTxt & ChrW$(&H1ECD) & Right(sText, Len(sText) - i)
Case "O": sText = sPreTxt & ChrW$(&H1ECC) & Right(sText, Len(sText) - i)
Case ChrW$(&HF4): sText = sPreTxt & ChrW$(&H1ED9) & Right(sText, Len(sText) - i)
Case ChrW$(&HD4): sText = sPreTxt & ChrW$(&H1ED8) & Right(sText, Len(sText) - i)
Case ChrW$(&H1A1): sText = sPreTxt & ChrW$(&H1EE3) & Right(sText, Len(sText) - i)
Case ChrW$(&H1A0): sText = sPreTxt & ChrW$(&H1EE2) & Right(sText, Len(sText) - i)
'u
Case "u": sText = sPreTxt & ChrW$(&H1EE5) & Right(sText, Len(sText) - i)
Case "U": sText = sPreTxt & ChrW$(&H1EE4) & Right(sText, Len(sText) - i)
Case ChrW$(&H1B0): sText = sPreTxt & ChrW$(&H1EF1) & Right(sText, Len(sText) - i)
Case ChrW$(&H1AF): sText = sPreTxt & ChrW$(&H1EF0) & Right(sText, Len(sText) - i)
'y
Case "y": sText = sPreTxt & ChrW$(&H1EF5) & Right(sText, Len(sText) - i)
Case "Y": sText = sPreTxt & ChrW$(&H1EF4) & Right(sText, Len(sText) - i)
End Select
Case "6"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&HE2) & Right(sText, Len(sText) - i)
Case "A": sText = sPreTxt & ChrW$(&HC2) & Right(sText, Len(sText) - i)
'e
Case "e": sText = sPreTxt & ChrW$(&HEA) & Right(sText, Len(sText) - i)
Case "E": sText = sPreTxt & ChrW$(&HCA) & Right(sText, Len(sText) - i)
'o
Case "o": sText = sPreTxt & ChrW$(&HF4) & Right(sText, Len(sText) - i)
Case "O": sText = sPreTxt & ChrW$(&HD4) & Right(sText, Len(sText) - i)
End Select
Case "7"
Select Case sPreChar
'o
Case "o": sText = sPreTxt & ChrW$(&H1A1) & Right(sText, Len(sText) - i)
Case "O": sText = sPreTxt & ChrW$(&H1A0) & Right(sText, Len(sText) - i)
'u
Case "u": sText = sPreTxt & ChrW$(&H1B0) & Right(sText, Len(sText) - i)
Case "U": sText = sPreTxt & ChrW$(&H1AF) & Right(sText, Len(sText) - i)
End Select
Case "8"
Select Case sPreChar
'a
Case "a": sText = sPreTxt & ChrW$(&H103) & Right(sText, Len(sText) - i)
Case "A": sText = sPreTxt & ChrW$(&H102) & Right(sText, Len(sText) - i)
End Select
Case "9"
Select Case sPreChar
'd
Case "d": sText = sPreTxt & ChrW$(&H111) & Right(sText, Len(sText) - i)
Case "D": sText = sPreTxt & ChrW$(&H110) & Right(sText, Len(sText) - i)
End Select
End Select
Next i
Next J
Uni = sText
End Function
Và Đây là Hàm dùng cho Telex :
UniVBAT :
Public Function UniVBAT(Str As String) As String
Dim Ma As String, MaLuu As String, i As Long, a As Long
a = 1
For i = a To Len(Str)
i = a
Ma = Mid(Str, i, 3)
MaLuu = Ma
Select Case Ma
Case "aws": Ma = ChrW(7855): Case "Aws": Ma = ChrW(7854)
Case "awf": Ma = ChrW(7857): Case "Awf": Ma = ChrW(7856)
Case "awr": Ma = ChrW(7859): Case "Awr": Ma = ChrW(7858)
Case "awx": Ma = ChrW(7861): Case "Awx": Ma = ChrW(7860)
Case "awj": Ma = ChrW(7863): Case "Awj": Ma = ChrW(7862)
Case "aas": Ma = ChrW(7845): Case "Aas": Ma = ChrW(7844)
Case "aaf": Ma = ChrW(7847): Case "Aaf": Ma = ChrW(7846)
Case "aar": Ma = ChrW(7849): Case "Aar": Ma = ChrW(7848)
Case "aax": Ma = ChrW(7851): Case "Aax": Ma = ChrW(7850)
Case "aaj": Ma = ChrW(7853): Case "Aaj": Ma = ChrW(7852)
Case "ees": Ma = ChrW(7871): Case "Ees": Ma = ChrW(7870)
Case "eef": Ma = ChrW(7873): Case "Eef": Ma = ChrW(7872)
Case "eer": Ma = ChrW(7875): Case "Eer": Ma = ChrW(7874)
Case "eex": Ma = ChrW(7877): Case "Eex": Ma = ChrW(7876)
Case "eej": Ma = ChrW(7879): Case "Eej": Ma = ChrW(7878)
Case "oos": Ma = ChrW(7889): Case "Oos": Ma = ChrW(7888)
Case "oof": Ma = ChrW(7891): Case "Oof": Ma = ChrW(7890)
Case "oor": Ma = ChrW(7893): Case "Oor": Ma = ChrW(7892)
Case "oox": Ma = ChrW(7895): Case "Oox": Ma = ChrW(7894)
Case "ooj": Ma = ChrW(7897): Case "Ooj": Ma = ChrW(7896)
Case "ows": Ma = ChrW(7899): Case "Ows": Ma = ChrW(7898)
Case "owf": Ma = ChrW(7901): Case "Owf": Ma = ChrW(7900)
Case "owr": Ma = ChrW(7903): Case "Owr": Ma = ChrW(7902)
Case "owx": Ma = ChrW(7905): Case "Owx": Ma = ChrW(7904)
Case "owj": Ma = ChrW(7907): Case "Owj": Ma = ChrW(7906)
Case "uws": Ma = ChrW(7913): Case "Uws": Ma = ChrW(7912)
Case "uwf": Ma = ChrW(7915): Case "Uwf": Ma = ChrW(7914)
Case "uwr": Ma = ChrW(7917): Case "Uwr": Ma = ChrW(7916)
Case "uwx": Ma = ChrW(7919): Case "Uwx": Ma = ChrW(7918)
Case "uwj": Ma = ChrW(7921): Case "Uwj": Ma = ChrW(7920)
End Select
If Ma <> MaLuu Then
UniVBAT = UniVBAT & Ma
a = i + 3
Else
Ma = Mid(Str, i, 2)
MaLuu = Ma
Select Case Ma
Case "as": Ma = ChrW(225): Case "As": Ma = ChrW(193)
Case "af": Ma = ChrW(224): Case "Af": Ma = ChrW(192)
Case "ar": Ma = ChrW(7843): Case "Ar": Ma = ChrW(7842)
Case "ax": Ma = ChrW(227): Case "Ax": Ma = ChrW(195)
Case "aj": Ma = ChrW(7841): Case "Aj": Ma = ChrW(7840)
Case "aw": Ma = ChrW(259): Case "Aw": Ma = ChrW(258)
Case "aa": Ma = ChrW(226): Case "Aa": Ma = ChrW(194)
Case "dd": Ma = ChrW(273): Case "Dd": Ma = ChrW(272)
Case "es": Ma = ChrW(233): Case "Es": Ma = ChrW(201)
Case "ef": Ma = ChrW(232): Case "Ef": Ma = ChrW(200)
Case "er": Ma = ChrW(7867): Case "Er": Ma = ChrW(7866)
Case "ex": Ma = ChrW(7869): Case "Ex": Ma = ChrW(7868)
Case "ej": Ma = ChrW(7865): Case "Ej": Ma = ChrW(7864)
Case "ee": Ma = ChrW(234): Case "Ee": Ma = ChrW(202)
Case "is": Ma = ChrW(237): Case "Is": Ma = ChrW(205)
Case "if": Ma = ChrW(236): Case "If": Ma = ChrW(204)
Case "ir": Ma = ChrW(7881): Case "Ir": Ma = ChrW(7880)
Case "ix": Ma = ChrW(297): Case "Ix": Ma = ChrW(296)
Case "ij": Ma = ChrW(7883): Case "Ij": Ma = ChrW(7882)
Case "os": Ma = ChrW(243): Case "Os": Ma = ChrW(211)
Case "of": Ma = ChrW(242): Case "Of": Ma = ChrW(210)
Case "or": Ma = ChrW(7887): Case "Or": Ma = ChrW(7886)
Case "ox": Ma = ChrW(245): Case "Ox": Ma = ChrW(213)
Case "oj": Ma = ChrW(7885): Case "Oj": Ma = ChrW(7884)
Case "oo": Ma = ChrW(244): Case "Oo": Ma = ChrW(212)
Case "ow": Ma = ChrW(417): Case "Ow": Ma = ChrW(416)
Case "us": Ma = ChrW(250): Case "Us": Ma = ChrW(218)
Case "uf": Ma = ChrW(249): Case "Uf": Ma = ChrW(217)
Case "ur": Ma = ChrW(7911): Case "Ur": Ma = ChrW(7910)
Case "ux": Ma = ChrW(361): Case "Ux": Ma = ChrW(360)
Case "uj": Ma = ChrW(7909): Case "Uj": Ma = ChrW(7908)
Case "uw": Ma = ChrW(432): Case "Uw": Ma = ChrW(431)
Case "ys": Ma = ChrW(253): Case "Ys": Ma = ChrW(221)
Case "yf": Ma = ChrW(7923): Case "Yf": Ma = ChrW(7922)
Case "yr": Ma = ChrW(7927): Case "Yr": Ma = ChrW(7926)
Case "yx": Ma = ChrW(7929): Case "Yx": Ma = ChrW(7928)
Case "yj": Ma = ChrW(7925): Case "Yj": Ma = ChrW(7924)
End Select
If Ma <> MaLuu Then
UniVBAT = UniVBAT & Ma
a = i + 2
Else
UniVBAT = UniVBAT & Mid(Str, i, 1)
a = i + 1
End If
End If
Next i
End Function
MsgUniT :
Public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxW" (ByVal hwnd As Long, _
ByVal lpText As Long, _
ByVal lpCaption As Long, _
ByVal wType As Long) As Long
Public Function MsgUniT(ByVal Chuoi As String, Optional Bieutuong As VbMsgBoxStyle = 64, _
Optional ByVal Tieude As String = "Thoong baso !", _
Optional ByVal Khac As Long = 0) As VbMsgBoxResult
MsgUniT = MessageBox(Khac, StrPtr(UniVBAT(Chuoi)), StrPtr(UniVBAT(Tieude)), Bieutuong)
End Function
Sub msg()
MsgBox "Nguyeeexn Carnh Hoafng Danh.", 64, "Thoong baso !"
MsgUni ("Nguyeeexn Carnh Hoafng Danh.")
End Sub
sao chữ Nguyễn không hiệu được đầy đủ bạn ơi!
Anh xem chữ màu đỏ sẽ hiểu lý do thôi.
Còn một lỗi nữa, đó là khi anh Copy đoạn code của Unicode cho gõ telex sửa lại dùng cho gõ vini thì quên sửa lại đoạn giữa :
End Select
If Ma <> MaLuu Then
UniVBAT = UniVBAT & Ma
a = i + 3Else
Ma = Mid(Str, i, 2)
MaLuu = Ma
Vậy có bác nào biết cách chuyển text tiếng Việt lên trên Caption của Form không ạ!
Chì cho cháu với!
Thanks.
Nếu là trên Application thì chỉ cần dùng hàm UniVBA của mình là ok, thử đưa nó lên thanh tiêu đề trên User Form thử nha.
Sub workbook_open()
Application.Caption = UniVBA("Nguye64n Ca3nh Hoa2ng Danh")
End Sub
Kỹ năng giải quyết vấn đề hiệu quả
Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...
Xem khóa học