Bác nhớ vẫn xài phải xài bàn phím bằng english ấy !!!sẽ hết bị như thế!!!Gửi bởi ductam_ht1
Bác nhớ vẫn xài phải xài bàn phím bằng english ấy !!!sẽ hết bị như thế!!!Gửi bởi ductam_ht1
[QUOTE="anhtuan1066"]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ị
40px
</div>
</div>
</div>
Em kiến thức còn kém xin hỏi.phần tạo cái này làm như thé nào:Tạo 1 Name với nội dụng là đoạn text mà bạn cần hiển thị
40px
[QUOTE="phuyen89"]Em kiến thức còn kém xin hỏi.phần tạo cái này làm như thé nào:Tạo 1 Name với nội dụng là đoạn text mà bạn cần hiển thị
40px
Bạn mở file lên, vào menu Insert\Name\Define là tự nhiên sẽ hiểu
PHƯƠNG ÁN 1:Gửi bởi ndu96081631
Nếu bạn muốn dùng Msgbox thì cần dùng bảng mã CP 1258.
Để sử dụng CP 1258 bạn cần:
1 - Chọn cài đặt các file cần thiết cho CP 1258.
2 - Đặt sẵn CP 1258 cho mã nguồn non-Unicode.
3 - Chạy bộ gõ mà có hổ trợ bảng mã 1258. Đề cử bạn dùng Unikey.
4 - Format trang VBE của bạn sang font Vietnamese.
Cái số 1: Vào Control Panel / Region Language, ở tab Language chọn Install for East Asian Language. Nếu máy bạn đã có thì sang số 2.
Cái số 2: Vào Control Panel / Region Language, ở tab Advanced chọn Vietnamese.
Cái số 3: Không có gì đặt biệt, bạn chỉ cần dùng Unikey và chọn bảng mã CP 1258 để sẵn sàng gõ tiếng Việt.
Cái số 4: Trong VBE của Excel bạn chọn To ols/ Option/ Editor Format và chọn font unicode có chữ (Vietnamese) ở phía sau.
---- Bạn chỉ thấy xuất hiện font này khi bạn có thực hiện bước số 1 ----
Chú ý:
- Chủ yếu là bạn phải cài file cho East Asian Language và đặt codepage 1258 cho các program non-unicode, không cần phải chọn tất cả các cái trong Region Language sang Vietnamese chẳng hạn như là kiểu tiền, dấu thập phân ... (nếu bạn không thích).
(Hướng dẫn của quan314k ở bài trước là chọn lung tùng phèng mà không nhớ là mình chọn cái đó để làm gì).
- Dĩ nhiên bạn phải chọn trong Unikey bảng mã 1258 và format trang đang viết trong VBE sang Vietnamese - ví dụ bạn chọn Tahoma(Vietnamese) - là để bạn đọc được các tiếng Việt mà bạn gõ vào.
- Quan trọng:
Bạn đang dùng CP 1258 thì dĩ nhiên nó khác với UTF-8 (CP 65001). Dù sao đi nữa thì CP 65001 vẫn phổ biến hơn. Các trang web vẫn xài UTF-8. Hãy cân nhắc khi quyết định sử dụng CP 1258, bởi vì tôi đoán chắc rằng dữ liệu trong máy của bạn phần lớn là dùng UTF-8. Nó sẽ gây khó khăn nếu bạn cần so sánh chuỗi trong dữ liệu với nội dung của Msgbox.
Tuy nhiên nếu bạn dùng HTML Help Workshop để làm file hướng dẫn .CHM thì bạn cần làm quen với CP 1258. Nhưng dù sao thì nó cũng là 1 phần mềm riêng, sau khi bạn đã biên dịch sang .chm thì bạn có thể trả default codepage ở máy của bạn về CP 1252 mà file .chm của bạn vẫn chạy ngon lành. Bởi vì nó đã được biên dịch sang mã máy rồi.
Trong khi đó với VBA thì nó sẽ biên dịch lại mỗi khi bạn sửa code. Vì thế, bạn sẽ phải để luôn máy của bạn ở CP 1258 (cái bước số 2 ấy mà). Nếu mang sang máy khác thì không hiển thị tiếng Việt CP 1258 được - nếu như máy đó đặt codepage khác đi - vì nó sẽ không biên dịch đúng CP.
PHƯƠNG ÁN 2:
Bạn vẫn muốn dùng UTF-8 hơn là CP 1258.
Đây là yêu cầu chính đáng thôi.
Vì thế bạn đã dùng Macro4.Alert thay cho dùng Msgbox.
Ưu thế của phương án 1 so với phương án này là: bạn có thể dùng CP 1258 ở mọi nơi như là trong trang VBE, trong form, trong cửa sổ properties...
Nói nào ngay, với VNI và TCVN3 bạn cũng làm được như thế. Chỉ có điều CP 1258 dùng chung font với unicode nên nó đẹp hơn (chỉ thua cái font Thư Pháp thôi).
Trong phương án 2 này tôi đề nghị bạn thử dùng Assistant.DoAlert thay vì dùng Macro4.Alert
Như thế bạn có thể đặt tiêu đề tiếng Việt. Ngoài ra các nút OK, Cancel ... cho bạn sử dụng cũng nhiều hơn.
Cú pháp:
Application.Assistant.DoAlert(bstrAlertTitle, bstrAlertText, MsoAlertButtonType, MsoAlertIconType, MsoAlertDefaultType, MsoAlertCancelType, varfSysAlert)
(Bạn xem thêm hướng dẫn trong Help của Microsoft)
Nhắc lại: bạn không thể gõ trực tiếp Unicode dựng sẵn hoặc UTF-8 vào VBE được.
Bạn có thể gõ AlertTitle và AlertText vào 1 cell nào đó trong bảng tính, hoặc gán vào 1 cái Name nào đó, hoặc gõ vào 1 cái label nào đó trong 1 cái form ... rồi sau đó gán vào DoAlert.
Trong một số tình huống không quan trọng mà bạn không cần xử lý chuỗi trong AlertText, chỉ đơn giản là bạn muốn hiển thị thông báo mà thôi thì đề nghị bạn áp dụng biện pháp bổ sung:
Dùng bảng mã CP 1258 để gõ vào VBE (Nhớ chọn Editor Format là Tahoma(Vietnamese) để đọc được cái mình gõ vào).
Cú pháp:
Application.Assistant.DoAlert( _
StrConv(StrConv("Đây là tiêu đề tiếng Việt", vbFromUnicode), vbUnicode, 1066), _
StrConv(StrConv("Còn chỗ này là nội dung", vbFromUnicode), vbUnicode, 1066), _
msoAlertButtonYesAllNoCancel, _
msoAlertIconCritical, _
msoAlertDefaultSecond, _
msoAlertCancelFirst, _
False)
--- Chỗ tiếng Việt ở trên nhớ gõ bằng CP 1258 nhé bạn và nhớ xem thêm về hàm StrConv() ---
Thì chọn phương án 2 và tự mình hạn chế thèm muốn khi thấy người ta xài Msgbox thoải mái.
Uh... học thêm được 1 cách mớiGửi bởi muontennguoikhac
Có điều phương án 2 này nó cũng đâu có hiện được Tiếng Việt Unicod TRÊN TIÊU ĐỀ đâu nè?
Thêm nữa, topic này là MsgBox tiếng Việt Unicode đơn giản.... Nếu mà giải pháp rắc rối quá tôi thà xài UserForm cho nó khỏe ---> Tiêu đề hay nội dung gì cũng gõ tiếng Việt được ráo trọi
Đọc kỹ hướng dẫn trước khi dùng! [IMG]images/smilies/biggrin.png[/IMG][IMG]images/smilies/biggrin.png[/IMG][IMG]images/smilies/biggrin.png[/IMG]Gửi bởi ndu96081631
Bạn mở cái file tôi gửi kèm lên thì thấy thôi mà.
Bạn ơi, tiêu đề cùa Thầy AnhTuan1066 nói rất rõ là dùng Macro4 để tạo nên Msgbox bằng tiếng Việt, nhưng để bạn thấy rằng có nhiều cách để tạo Caption cho Form, cũng như Msgbox bằng tiếng Việt, mình xin gửi một File lên cho các bạn cùng xem nhé! Chỉ là tổng hợp chất xám của diễn đàn chúng ta thôi.Gửi bởi muontennguoikhac
1) UserForm có Caption Tiếng Việt:
2) MsgBox có Caption và nội dung bằng Tiếng Việt:
Tôi có nói gì về MessageBoxW không ta??? Hình như là chưa.Gửi bởi minhthien321
1/. Nếu nói dùng Alert không hiển thị được tiêu đề tiếng Việt: đề nghị thử Assistant.DoAlert
2/. Nếu dùng bất cứ cái gì thuộc dạng ký sinh để chứa tiếng Việt thì có nhiều cách; còn nếu muốn gõ tiếng Việt vào VBE: cần dùng CP1258.
Thế thôi.
Dùng cái nào là chuyện của bạn.
Cảm ơn những chia sẽ của bạn! Điều quan trọng mà người dùng muốn (và tôi cũng muốn) là sử dụng được tiếng Việt Unicode mà không phải chỉnh gì trong hệ thống ấy chứGửi bởi muontennguoikhac