- Tham gia
- 13/6/06
- Bài viết
- 4,737
- Được thích
- 10,243
- Giới tính
- Nam
- Nghề nghiệp
- Giáo viên, CEO tại Bluesofts
hoa35ktxd đã viết:Vấn đề này nói khó đối với ai chưa biết, và không khó đối với ai đã biết rồi, ngoài việc dùng hàm API MessageBox ra thì tôi dùng Apploc.msi (1.32MB) do Microsoft cung cấp miễn phí nhằm khắc phục nhược điểm của VB, rất dễ sử dụng, cứ cài đặt bổ sung xong là có thể dùng luôn, hỗ trợ Vietnamese Locale CP 1528, dùng được cả trong VB6, không cần phải loay hoay với Unicode nữa, hỗ trợ rất nhiều control chuẩn của VBA và VB6 (Tôi chưa thử hết).
Tuy nhiên bạn đừng bắt tôi phải chuyển các button của Msgbox thành tiếng việt nhé vì tôi không biết làm cái đó đâu ngoại trừ giả lập thôi (Nếu không lầm thì bạn cũng giả lập).
Sub TestRestoreButtonText()
Dim x As VbMsgBoxResult
'Can phai co neu chay SetButtonText mang tinh tam thoi
SaveButtons 'Luu trang thai cua button
SetButtonText ID_YES, "TiÕng &ViÖt"
SetButtonText ID_NO, "&English"
SetButtonText ID_CANCEL, "&Kh«ng lµm"
x = MsgBox("B¹n muèn kh«i phôc nót bÊm vÒ d¹ng nµo?", _
vbYesNoCancel + vbQuestion, _
"Thay ®æi tªn nót button trong MsgBox")
If x = vbYes Then
RestoreButtonText False 'Viet Nam
ElseIf x = vbNo Then
RestoreButtonText True 'VB/VBA
Else 'Cancel
RestoreButtons 'Khoi phuc lai cac button
End If
End Sub
Lỗi ở đâu bạn nhỉ? Đó là file để test thôi mà.Còn đối với cái file "ControlForOffice.xls" vẫn còn lỗi.
Hàm chuyển số thành chữ không làm việc được, báo lỗi : #VALUE! khi người sử dụng thiết lập kiểu số theo dạng của Việt Nam (dấu thập phân là dấu "," dấu phân cách là dấu ".". Ngoài ra bạn cần có chế độ kiểm tra tính hợp lệ của dữ liệu của hàm USD, VND..., nếu đúng mới chạy, nếu không thì thoát. Ở đây nếu thiết lập theo chuẩn của VN thì khi sửa số liệu trong ô B19 lập tức lỗi và Excel sẽ thoát. Và bạn không nên để mặc định cho chương trình gán chữ "Đồng'' vào đằng sau kết quả. Hãy để việc đó cho người dùng vì có trường hợp đơn vị cần đếm không phải là đồng, Khi đó người sử dụng sẽ làm như sau (=''(Bằng chữ: '' & VND(B19) & ''Đồng''), như thế sẽ linh hoạt hơn.
Sub Auto_Open()
StartHookMsgBox GetHwndXLS(), strTCVN3 'Hook Msgbox - Cho phep hien thi MsgBox theo phong Unicode.
'Không nên chạy StartHookMsgBox trong thủ tục này.
End Sub
Sub Auto_Close()
StopHookMsgBox 'Bỏ đi, nếu StartHookMsgBox không chạy.
End Sub
Mr Okebab đã viết:Anh Tuân ơi, trong VBE có thể gõ theo Unicode mà ra vẫn là TV không anh ??
Em gõ theo VNI hoặc TCVN thì OK, nhưng Unicode lại chưa được.hay em làm sai ??
TuanVNUNI đã viết:Trong VBE không hiện được chuỗi Unicode, tất cả các dòng VB version<7 đều như thế cả. Nếu hiện được thì người ta có thể xây dựng một ứng dụng bằng VB hoàn toàn bằng Unicode một cách dễ dàng.
Anh có thể cho địa chỉ để tham khảo không? Em nghĩ không đơn giản, cho dù thể hiện được Unicode trong VBE, khi lưu file, nó lại không lưu chuỗi Unicode.smbsolutions đã viết:Ngay trên các diễn đàn ở VN cũng có đầy món viết Fully Unicode Support bằng VB đó thôi.
Nếu mua thì chỉ dùng cho ứng dụng lớn, các ứng dụng nho nhỏ mà mua chắc lúc đó giá của ứng dụng tăng lên đáng kể vì chi phí tăng -->Khó cạnh tranh về giá.smbsolutions đã viết:Ngoài ra còn có câu: Giờ chỉ sợ thiếu tiền, có tiền rồi mua quách bộ CyperActiveX gì đó (đỡ phải lằng nhằng viết lách cho mệt). Khi đó thì đúng là 200% Unicode Support luôn.
Tuân có vẻ ít tham khảo quá nhỉ. Bên Bảo minh hay trung tâm SDC gì đó trong Đà nẵng có cái HRM, cái SalesBX gì đó cũng là ứng dụng Unicode đó thôi. Ngay trên cái caulacbovb có cái vbapi lib gì đó cũng là unicode đó thôi, v.v...TuanVNUNI đã viết:Anh có thể cho địa chỉ để tham khảo không? Em nghĩ không đơn giản, cho dù thể hiện được Unicode trong VBE, khi lưu file, nó lại không lưu chuỗi Unicode.
Bác vui lòng sửa lại link download nhé. Bác để www.www như thế thì làm sao mọi người download đc.Thanks
và còn bị lỗi 2 nút đồng ý và không nó bị đen thui như thế này thì là sao hả bác???
CÒn nữa, khi click vào Progress của thanh trạng thái thì báo lỗi run- time error 2147417848 automation error
Tôi đang use office 2003
Các lỗi trên đã được khắc phục. Bác TuanVNUNI vui lòng cho mình hỏi, nếu muốn thay cái hình sử dụng login form của bác thì có cần phải chỉnh sửa gì trong file msg.skn không? Mình chỉ cần đổi hình là được đúng không?
Cám ơn sự đóng góp nhiệt tình của TUANVNUNI giành cho diễn đàn.
+ Tạo ảnh. Tô màu nền cho ảnh, chỉ tô một màu, bắt đầu từ toạ độ X=0, Y=0. Tô những vùng mà bạn muốn cắt bỏ
+ Dùng chương trình tạo file *.skn. Nội dung của file này thực chất chứa các điểm cần cần cắt bỏ khỏi form. Chương trình này download từ www.bluesofts.net
Lưu ý, số điểm cắt càng nhiều thì tốc độ tạo skin càng chậm, bạn cần có thêm thủ thuật để cắt nhanh (giới hạn điểm cắt).
+ Copy file *.skn vào cùng thư mục với file chương trình.
+ Tạo UserForm, trong màn hình "Property", chọn Picture và xác định file ảnh đã thiết kế
+ Trong sự kiện "UserForm_Initialize" của UserForm, soạn lệnh như sau:
Mã:Private Sub UserForm_Initialize() SetWinSkin GetHwnd(Me.Caption), ActiveWorkbook.Path & "\file.skn" End Sub
[INDENT]StartHookMsgBox
MsgBoxW
MsgBoxTimer
CallbackTimerProc
Type TInputStruct[/INDENT]
Cảm ơn bạn. Lỗi trên tôi đã sửa trong phiên bản 2.0.1.
ControlForOffice v2.0.1, ngày 15/10/08