sealand
Thành viên gạo cội
- Tham gia
- 16/5/08
- Bài viết
- 4,883
- Được thích
- 7,688
- Giới tính
- Nam
- Nghề nghiệp
- Kế Toán
Mình thấy hiện nay:
-Nếu để hiện tiếng Việt trên Msgbox, Title thường rất khó.
-Muốn kết quả trả về bằng chuỗi tiếng Việt font Unicode thường ghép mã cũng không đơn giản.
Lang thang trên Internet qua bên "Thủ thuật Accecs " có cái hàm này khá gọn mà hay. Mình chép về cải biên thành 2 hàm sau. Mình giới thiệu anh em tham khảo:
1/Để hiển thị tiếng Việt trên msgbox:
Sử dụng hàm (Trong cửa sổ VBA cứ gõ tiếng Việt bình thường, dù hiển thị lung tung hàm sẽ chuyển lại):
Đây là hình mình nhập trong VBA
Và khi thực hiện:
2/Tạo chuỗi mã tiếng Việt font Unicode:
Đây là đoạn báo mình sẽ chuyển mã
"Messi cuối cùng cũng đã nổ súng, nhưng bàn thắng của anh cũng chỉ giúp cho đoàn quân của Pep kịp giật lại một điểm để ra về sau trận cầu quá đỗi khó khăn ở xứ Basque. Những nhà đương kim vô địch đã thể hiện một bộ mặt nhạt nhòa tại San Mames."
Kết quả như hình sau:
Các bạn tuỳ cơ sử dụng nha.
Cám ơn anh em bên "Thủ thuật Access" đã chia sẻ.
-Nếu để hiện tiếng Việt trên Msgbox, Title thường rất khó.
-Muốn kết quả trả về bằng chuỗi tiếng Việt font Unicode thường ghép mã cũng không đơn giản.
Lang thang trên Internet qua bên "Thủ thuật Accecs " có cái hàm này khá gọn mà hay. Mình chép về cải biên thành 2 hàm sau. Mình giới thiệu anh em tham khảo:
1/Để hiển thị tiếng Việt trên msgbox:
Mã:
Function VBAUni(ByVal chuoi As String) As String
Dim n, Uni1, Uni2
If chuoi = "" Then
VBAUni = ""
Else
chuoi = chuoi & " "
If AscW(Left(chuoi, 1)) < 256 Then VBAUni = """"
For n = 1 To Len(chuoi) - 1
Uni1 = Mid(chuoi, n, 1)
Uni2 = AscW(Mid(chuoi, n + 1, 1))
If AscW(Uni1) > 255 And Uni2 > 255 Then
VBAUni = VBAUni & "ChrW(" & AscW(Uni1) & ") & "
ElseIf AscW(Uni1) > 255 And Uni2 < 256 Then
VBAUni = VBAUni & "ChrW(" & AscW(Uni1) & ") & """
ElseIf AscW(Uni1) < 256 And Uni2 > 255 Then
VBAUni = VBAUni & Uni1 & """ & "
Else
VBAUni = VBAUni & Uni1
End If
Next
If Right(VBAUni, 4) = " & """ Then
VBAUni = Mid(VBAUni, 1, Len(VBAUni) - 4)
Else
VBAUni = VBAUni & """"
End If
End If
VBAUni = Right(Left(VBAUni, Len(VBAUni) - 1), Len(VBAUni) - 2)
End Function
Mã:
Private Sub CommandButton1_Click()
Dim ch
ch = "..." & Chr(10)
ch = ch & "Em nhí anh nhng ch¼ng nãi thµnh lêi" & Chr(10)
ch = ch & "Gom gãp l¹i cho ma nhiÒu thªm n÷a." & Chr(10)
ch = ch & "Nçi nhí theo em lín dÇn thµnh ngän löa" & Chr(10)
ch = ch & "M·i bËp bïng ®èt ch¸y c¶ ®ªm th©u" & Chr(10) & Chr(10)
ch = ch & "Nçi nhí ®o¹ ®µy cho ®«i m¾t thªm s©u." & Chr(10)
ch = ch & "Em íc thêi gian tr«i nhanh cµng nhanh n÷a." & Chr(10)
ch = ch & "Nh÷ng giÊc m¬ lu«n cã anh ë gi÷a." & Chr(10)
ch = ch & "Chan chøa t×nh, chan chøa yªu th¬ng." & Chr(10) & Chr(10)
ch = ch & "Em giËn m×nh sao cø m·i vÊn v¬ng." & Chr(10)
ch = ch & "Ngêi dng kh¸c hä sao mµ tha thiÕt thÕ." & Chr(10)
ch = ch & "ChuyÖn t×nh yªu tõ ngµn xa kh«n dÔ." & Chr(10)
ch = ch & "§«i chóng m×nh ©u còng bëi c¸i duyªn." & Chr(10) & Chr(10)
ch = ch & Space(40) & "D¬ng H¹ My." & Chr(10)
MsgBox VBAUni(ch), , VBAUni("TiÕng ViÖt Unicode trªn VBA")
End Sub
Đây là hình mình nhập trong VBA
Và khi thực hiện:
2/Tạo chuỗi mã tiếng Việt font Unicode:
Mã:
Function CodeVBAUni(ByVal chuoi As String) As String
Dim n, Uni1, Uni2
If chuoi = "" Then
CodeVBAUni = """"""
Else
chuoi = chuoi & " "
If AscW(Left(chuoi, 1)) < 256 Then CodeVBAUni = """"
For n = 1 To Len(chuoi) - 1
Uni1 = Mid(chuoi, n, 1)
Uni2 = AscW(Mid(chuoi, n + 1, 1))
If AscW(Uni1) > 255 And Uni2 > 255 Then
CodeVBAUni = CodeVBAUni & "ChrW(" & AscW(Uni1) & ") & "
ElseIf AscW(Uni1) > 255 And Uni2 < 256 Then
CodeVBAUni = CodeVBAUni & "ChrW(" & AscW(Uni1) & ") & """
ElseIf AscW(Uni1) < 256 And Uni2 > 255 Then
CodeVBAUni = CodeVBAUni & Uni1 & """ & "
Else
CodeVBAUni = CodeVBAUni & Uni1
End If
Next
If Right(CodeVBAUni, 4) = " & """ Then
CodeVBAUni = Mid(CodeVBAUni, 1, Len(CodeVBAUni) - 4)
Else
CodeVBAUni = CodeVBAUni & """"
End If
End If
End Function
Đây là đoạn báo mình sẽ chuyển mã
"Messi cuối cùng cũng đã nổ súng, nhưng bàn thắng của anh cũng chỉ giúp cho đoàn quân của Pep kịp giật lại một điểm để ra về sau trận cầu quá đỗi khó khăn ở xứ Basque. Những nhà đương kim vô địch đã thể hiện một bộ mặt nhạt nhòa tại San Mames."
Kết quả như hình sau:
Các bạn tuỳ cơ sử dụng nha.
Cám ơn anh em bên "Thủ thuật Access" đã chia sẻ.