Chữ Việt trong Macro

Liên hệ QC

haonlh

Thành viên tích cực
Tham gia
2/12/07
Bài viết
1,177
Được thích
587
Đọc lại các bài cũ, thấy giới thiệu sách từ năm 2008, tôi đọc và tìm mãi chưa thấy câu trả lời cho câu hỏi đại ý là thế này:

[FONT=&quot]Câu lệnh (trích trong trang xin góp ý về sách hướng dẫn Lập trình..."[/FONT]
[FONT=&quot]MsgBox [FONT=&quot]"Kiểu đồi tượng được chọn là" [/FONT][FONT=&quot]& [/FONT][FONT=&quot]TypeName[/FONT][FONT=&quot]([/FONT][FONT=&quot]Selection[/FONT][FONT=&quot]) [/FONT][FONT=&quot][/FONT][/FONT]


khi thực hiện thì không có chữ Việt có dấu nữa. Phải cài đặt thêm gì để khắc phục


 
Đây là thủ thuật để hiển thị chữ tiếng Việt thôi.

Dưới đây là nội dung hiện chữ tiếng Việt trong Msgbox, thực chất là bằng MsgboxUni do anh TuanVNUNI xây dựng.

Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Declare Function MessageBoxW Lib "user32" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

Function MsgBoxUni(ByVal PromptUni As Variant, Optional ByVal Buttons As VbMsgBoxStyle = vbOKOnly, Optional ByVal TitleUni As Variant = vbNullString) As VbMsgBoxResult
'BStrMsg,BStrTitle : La chuoi Unicode
Dim BStrMsg, BStrTitle
'Hàm StrConv Chuyen chuoi ve ma Unicode
BStrMsg = StrConv(PromptUni, vbUnicode)
BStrTitle = StrConv(TitleUni, vbUnicode)

MsgBoxUni = MessageBoxW(GetActiveWindow, BStrMsg, BStrTitle, Buttons)
End Function
'Ham TCVN3toUNICODE, VNItoUNICODE duoc viet boi Binh - OverAC
'www.giaiphapexcel.com

Function TCVN3toUNICODE(vnstr As String)
Dim c As String, i As Integer
For i = 1 To Len(vnstr)
c = Mid(vnstr, i, 1)
Select Case c
Case "a": c = ChrW$(97)
Case "¸": c = ChrW$(225)
Case "µ": c = ChrW$(224)
Case "¶": c = ChrW$(7843)
Case "·": c = ChrW$(227)
Case "¹": c = ChrW$(7841)
Case "¨": c = ChrW$(259)
Case "¾": c = ChrW$(7855)
Case "»": c = ChrW$(7857)
Case "¼": c = ChrW$(7859)
Case "½": c = ChrW$(7861)
Case "Æ": c = ChrW$(7863)
Case "©": c = ChrW$(226)
Case "Ê": c = ChrW$(7845)
Case "Ç": c = ChrW$(7847)
Case "È": c = ChrW$(7849)
Case "É": c = ChrW$(7851)
Case "Ë": c = ChrW$(7853)
Case "e": c = ChrW$(101)
Case "Ð": c = ChrW$(233)
Case "Ì": c = ChrW$(232)
Case "Î": c = ChrW$(7867)
Case "Ï": c = ChrW$(7869)
Case "Ñ": c = ChrW$(7865)
Case "ª": c = ChrW$(234)
Case "Õ": c = ChrW$(7871)
Case "Ò": c = ChrW$(7873)
Case "Ó": c = ChrW$(7875)
Case "Ô": c = ChrW$(7877)
Case "Ö": c = ChrW$(7879)
Case "o": c = ChrW$(111)
Case "ã": c = ChrW$(243)
Case "ß": c = ChrW$(242)
Case "á": c = ChrW$(7887)
Case "â": c = ChrW$(245)
Case "ä": c = ChrW$(7885)
Case "«": c = ChrW$(244)
Case "è": c = ChrW$(7889)
Case "å": c = ChrW$(7891)
Case "æ": c = ChrW$(7893)
Case "ç": c = ChrW$(7895)
Case "é": c = ChrW$(7897)
Case "¬": c = ChrW$(417)
Case "í": c = ChrW$(7899)
Case "ê": c = ChrW$(7901)
Case "ë": c = ChrW$(7903)
Case "ì": c = ChrW$(7905)
Case "î": c = ChrW$(7907)
Case "i": c = ChrW$(105)
Case "Ý": c = ChrW$(237)
Case "×": c = ChrW$(236)
Case "Ø": c = ChrW$(7881)
Case "Ü": c = ChrW$(297)
Case "Þ": c = ChrW$(7883)
Case "u": c = ChrW$(117)
Case "ó": c = ChrW$(250)
Case "ï": c = ChrW$(249)
Case "ñ": c = ChrW$(7911)
Case "ò": c = ChrW$(361)
Case "ô": c = ChrW$(7909)
Case "­": c = ChrW$(432)
Case "ø": c = ChrW$(7913)
Case "õ": c = ChrW$(7915)
Case "ö": c = ChrW$(7917)
Case "÷": c = ChrW$(7919)
Case "ù": c = ChrW$(7921)
Case "y": c = ChrW$(121)
Case "ý": c = ChrW$(253)
Case "ú": c = ChrW$(7923)
Case "û": c = ChrW$(7927)
Case "ü": c = ChrW$(7929)
Case "þ": c = ChrW$(7925)
Case "®": c = ChrW$(273)
Case "A": c = ChrW$(65)
Case "¡": c = ChrW$(258)
Case "¢": c = ChrW$(194)
Case "E": c = ChrW$(69)
Case "£": c = ChrW$(202)
Case "O": c = ChrW$(79)
Case "¤": c = ChrW$(212)
Case "¥": c = ChrW$(416)
Case "I": c = ChrW$(73)
Case "U": c = ChrW$(85)
Case "¦": c = ChrW$(431)
Case "Y": c = ChrW$(89)
Case "§": c = ChrW$(272)
End Select
TCVN3toUNICODE = TCVN3toUNICODE + c
Next i
End Function
Function UNC(strTCVN3 As String)
UNC = TCVN3toUNICODE(strTCVN3)
End Function
 
Upvote 0
Lời giới thiệu của domfootwear là rất lý thú. Cảm ơn.

Vừa thử, thấy làm như sau cũng hay:
- Trên Sheet 'a b' , ô A1 có nội dung chữ Việt nào đó
- Sử dụng lệnh như trong giới thiệu của anh domfootwear:

Application.ExecuteExcel4Macro ("ALERT(""" & ['a b'!a1] & """,2)")

ở đây, tôi thay
Application.ExecuteExcel4Macro ("ALERT(""" & Evaluate("MsgText") & """,2)") bằng ['a b'!a1]

Có thể ẩn sheet 'a b', hoặc ẩn các dòng có nội dung thông báo.

Như vậy có thể là tiện hơn đặt tên, số lượng thông báo cũng nhiều nếu cần.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom