Dùng hàm msgboxuni là được chứ gì, chút xíu mình post code lên cho
Chỉ có cái nhược điểm là tiêu đề không tiếng việt được
Xin lỗi bạn, trong đây nhiều ANH lắm, hỏng biết bạn hỏi anh nào vậy?Làm sao để thay đổi Caption mặc định của hộp thông báo là "Microsoft Excel" bằng phương thức Application.ExecuteExcel14Macro vậy anh?
Mình thấy dùng bản mã Unicode tổ hợp thì hộp thông báo hiển thị được tiếng Việt, nhưng có vấn đề là khi gõ tiếng Việt trong code thì vị trí con trỏ không chính xác với vị trí của chữ, mỗi lần gõ chữ có dấu thì con trỏ nhảy thêm 1 bước gây khó khăn khi chỉnh sửa.Cảm ơn Nguyễn Duy Tuân đã chia sẻ về hàm MsgBoxUni
em có áp dụng hàm này của bác một thời gian dài từ win 7, win 8 đều thể hiện tốt, nhưng khi sang dùng Windows 10 Pro thì không còn đúng
ví dụ: gõ "Đã đăng nhập" và "Thời gian thử việc ..."
View attachment 147011 View attachment 147014
không biết có còn chỉnh sửa gì trong code hay hệ thống nữa ko?
Mình thấy dùng bản mã Unicode tổ hợp thì hộp thông báo hiển thị được tiếng Việt, nhưng có vấn đề là khi gõ tiếng Việt trong code thì vị trí con trỏ không chính xác với vị trí của chữ, mỗi lần gõ chữ có dấu thì con trỏ nhảy thêm 1 bước gây khó khăn khi chỉnh sửa.
Sao không dùng bảng mã Unicode dựng sẳn đi bạn? Unicode tổ hợp khá rắc rối khi ghi trên caption của các control hoặc đối tượng.
Vì bạn muốn gõ tiếng Việt trong VBA (cái thứ mà người dùng chẳng cần thấy) nên MsgBox bị lỗi font (cái hiển thị bị lỗi), vậy bạn muốn chọn cái nào thì tùy. Riêng gõ tiếng Việt trong đó thì font VNI-Times cũng gõ thấy vậy đâu nhất thiết phải Unicode Tổ hợp.Không biết ở máy bạn thế nào nhưng mình thấy ở máy mình chỉ Unicode tổ hợp mới gõ được tiếng Việt trong code nếu không dùng hàm chuyển đổi ( mình dùng excel2013)
Mình cũng chỉ thích dùng Unicode dựng sẵn cho tiện, nhưng khi gọi vào MsgBox toàn bị lỗi font ( kiểu gõ telex).Vì bạn muốn gõ tiếng Việt trong VBA (cái thứ mà người dùng chẳng cần thấy) nên MsgBox bị lỗi font (cái hiển thị bị lỗi), vậy bạn muốn chọn cái nào thì tùy. Riêng gõ tiếng Việt trong đó thì font VNI-Times cũng gõ thấy vậy đâu nhất thiết phải Unicode Tổ hợp.
Tôi thì luôn chọn Unicode dựng sẳn thôi. Muốn có tiếng Việt thì tôi gõ ở sheet nào đó rồi gọi nó vào thôi.
Sao không dùng kiểu sau đi cho nó khỏe thân vậy...Mình cũng chỉ thích dùng Unicode dựng sẵn cho tiện, nhưng khi gọi vào MsgBox toàn bị lỗi font ( kiểu gõ telex).
Trong file gửi kèm đây mình dùng Msgbox hiển thị 3 câu ở 3 ô khác nhau thì chỉ có câu gõ bằng Unicode tổ hợp là không bị lỗi font. Mình không hiểu nguyên nhân tại sao, bạn xem qua rồi giải thích giúp với (sorry, gọi là "bạn" vì chưa biết tuổi )
Sub Test_MsgboxUnicode()
Dim CH As String, Dl As String
CH = "C" & ChrW(7897) & "ng h" & ChrW(242) & "a x" & ChrW(227) & " h" & ChrW(7897) _& "i ch" & ChrW(7911) & " ngh" & ChrW(297) & "a vi" & ChrW(7879) & "t Nam"
Dl = ChrW(272) & ChrW(7897) & "c L" & ChrW(7853) & "p - T" & ChrW(432) & " Do - H" _& ChrW(7841) & "nh Ph" & ChrW(250) & "c"
CreateObject("WScript.Shell").PopUp CH & vbNewLine & Dl, , "Thông Báo"
End Sub
Hiển thị tiếng Việt ư? Quá đơn giản!Mình cũng chỉ thích dùng Unicode dựng sẵn cho tiện, nhưng khi gọi vào MsgBox toàn bị lỗi font ( kiểu gõ telex).
Trong file gửi kèm đây mình dùng Msgbox hiển thị 3 câu ở 3 ô khác nhau thì chỉ có câu gõ bằng Unicode tổ hợp là không bị lỗi font. Mình không hiểu nguyên nhân tại sao, bạn xem qua rồi giải thích giúp với (sorry, gọi là "bạn" vì chưa biết tuổi )
Sub Test()
Dim MyMsg As Long
Dim MsgTitle As String, MsgText As String
MsgTitle = Sheet1.Range("B1").Value & vbLf & Sheet1.Range("B2").Value & vbLf
MsgText = Sheet1.Range("B3").Value & vbLf & vbLf & Sheet1.Range("B4").Value & vbLf
MyMsg = Application.Assistant.DoAlert(MsgTitle, MsgText, msoAlertButtonYesNo, _
msoAlertIconQuery, msoAlertDefaultFirst, msoAlertCancelDefault, False)
End Sub
Hiển thị tiếng Việt ư? Quá đơn giản!
Mã:Sub Test() Dim MyMsg As Long Dim MsgTitle As String, MsgText As String MsgTitle = Sheet1.Range("B1").Value & vbLf & Sheet1.Range("B2").Value & vbLf MsgText = Sheet1.Range("B3").Value & vbLf & vbLf & Sheet1.Range("B4").Value & vbLf MyMsg = Application.Assistant.DoAlert(MsgTitle, MsgText, msoAlertButtonYesNo, _ msoAlertIconQuery, msoAlertDefaultFirst, msoAlertCancelDefault, False) End Sub
Anh ơi, cái này để chạy tiếp lệnh khác nếu chọn Yes hoặc No thì làm như thế nào ạ.
Các bạn giúp mình với ạ. Mình muốn ra Yes, No thì thay số 1,2,3 chọn số nào để ra mình đã thử từ 1 đến 3 mà không ra Yes, No. Mong các bạn giúp đỡ mình với ạCó nhiều giải pháp cho MsgBox tiếng Việt Unicode, ở đây xin giới thiệu 1 giải pháp cực đơn giản với sự trợ giúp của hàm Macro 4
Các bước thực hiện:
1> Tạo 1 Name với nội dụng là đoạn text mà bạn cần hiển thị
ví dụ: MsgText ="Đây là MsgBox tiếng Việt"2> Vẽ 1 CommandButton và chèn đoạn code này vào:
Lưu ý:PHP:Private Sub CommandButton2_Click() Application.ExecuteExcel4Macro ("ALERT(""" & Evaluate("MsgText") & """,2)") End Sub
- Tham số2 trong đoạn code có thể thay thế từ 1 đến 3 (hãy thay thế và thí nghiệm xem thử)
- Xem file đính kèm (bên trong có luôn 1 đoạn hiển thị Statusbar cũng bằng macro 4)
Bài viết này tham khảo từ cách làm của bạn Đào Việt Cường (nhưng rút gọn để các bạn dể hiểu hơn)
Mến
ANH TUẤN
Sao không dùng bài #52? Ai đó dí súng vào đầu bắt dùng cách "này" à?Các bạn giúp mình với ạ. Mình muốn ra Yes, No thì thay số 1,2,3 chọn số nào để ra mình đã thử từ 1 đến 3 mà không ra Yes, No. Mong các bạn giúp đỡ mình với ạ
Cảm ơn bạn đã phản hồi ạ, mình sẽ thử dùng bài #52.Sao không dùng bài #52? Ai đó dí súng vào đầu bắt dùng cách "này" à?
Sử dụng hàm này, nếu lựa chọn là Yes/No; nếu chọn Yes thì thực hiện lệnh A, thì phải làm sao bạn nhỉ?Hàm MsgBoxUni do tôi lập trình ra, bạn copy được ở đâu đó nên không hiểu rõ bản chất của chuỗi unicode.
Hàm MsgBoxUni được lập trình sử dụng hàm API MessageBoxW của user32.dll của Windows. Đây là hàm chuẩn theo unicode dùng chung cho các ứng dụng Windows. Title không không lên tiếng Việt chỉ xảy ra với Windows XP vì font trên Title/Caption của Form không phả là font unicode. Muốn hiện đúng chuỗi unicode thì font chọn trong Control Panel là: tahoma; veranda; Time New Roman.
Hình ảnh dưới đây được chụp trên Windows Vista
Bài viết gốc kèm theo mã nguồn hàm MsgBoxUni của tác giả Nguyễn Duy Tuân tại địa chỉ dưới đây:
Hiển thị MsgBox chữ có dấu tiếng việt - Unicode
Trong lập trình VBA, để hiển thị thông báo ta dùng hàm MsgBox, tuy nhiên hàm này không thể hiển thị chữ tiếng Việt có dấu -unicode.Bài viết này tôi xin hướng dẫn cách tạo ra một hàm MsgBox có khả năng hiển thị chữ tiếng Việt có dấu, unicode. Trong môi tr...bluesofts.net