VBA không hỗ trợ Unicode, khiến việc viết tiếng Việt có dấu trong VBA trở thành một vấn đề nan giải. Bài viết này sẽ hướng dẫn bạn cách đơn giản và nhanh chóng để hiển thị tiếng Việt có dấu trong VBA, sử dụng một add-in hỗ trợ.
Việc bạn cần làm là điền các thông số cần thiết, add-in sẽ tạo ra đoạn mã VBA tương ứng. Bạn chỉ cần sao chép và dán đoạn mã này vào code VBA của mình.
Giao diện Add-in hỗ trợ viết tiếng Việt trong VBA
Tạo Thông Báo Tiếng Việt trong VBA
Điền tiêu đề, nội dung, chọn kiểu nút (button) và biểu tượng (icon) cho thông báo.
Ví dụ thiết lập thông báo tiếng Việt trong VBA
Kết quả:
Kết quả hiển thị thông báo tiếng Việt trong VBA
Viết Tiếng Việt trong UserForm VBA
Viết Tiếng Việt cho Label, CommandButton, OptionButton, CheckButton
Với các đối tượng này, bạn chỉ cần click vào đối tượng và gõ trực tiếp nội dung tiếng Việt.
Viết Tiếng Việt cho Page Control
Click chuột phải vào tab của Page, chọn “Rename” và sửa nội dung trong phần “Caption”.
Cách đổi tên Page Control trong VBA
Viết Tiếng Việt cho Frame
Sử dụng add-in, tại tab “Biên dịch tiếng Việt sang VBA”, gõ tên Frame cần tạo.
Sử dụng add-in để viết tiếng Việt cho Frame
Sao chép đoạn mã được tạo ra và đặt vào thuộc tính Caption
của Frame trong Private Sub UserForm_Initialize()
:
Private Sub UserForm_Initialize()
Frame1.Caption = "H" & ChrW(7885) & "c Excel Online - Frame Ti" & ChrW(7871) & "ng Vi" & ChrW(7879) & "t"
End Sub
Kết quả:
Kết quả hiển thị tiếng Việt trong Frame
Viết Tiêu Đề UserForm bằng Tiếng Việt
Tại tab “Tiêu đề UserForm tiếng Việt” trong add-in, điền tiêu đề mong muốn.
Thiết lập tiêu đề UserForm bằng tiếng Việt
Sao chép và dán đoạn mã được tạo ra vào code VBA:
Private Const WM_SETTEXT = &HC
#If Win64 Then
Private Declare PtrSafe Function DefWindowProcW Lib "user32" (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As Long
Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#Else
Private Declare Function DefWindowProcW Lib "user32" (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As LongPtr) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
#End If
Private Sub UserForm_Initialize()
Dim HWnd&
HWnd = FindWindow("ThunderDFrame", Caption)
DefWindowProcW HWnd, WM_SETTEXT, 0, StrPtr("Ti" & ChrW(234) & "u " & ChrW(273) & ChrW(7873) & " Ti" & ChrW(7871) & "ng Vi" & ChrW(7879) & "t")
Frame1.Caption = "H" & ChrW(7885) & "c Excel Online - Frame Ti" & ChrW(7871) & "ng Vi" & ChrW(7879) & "t"
End Sub
Kết quả:
Kết quả hiển thị tiêu đề UserForm bằng tiếng Việt
Nâng Cao Kỹ Năng VBA
Ngôn ngữ VBA giúp tự động hóa nhiều công việc trên Excel, Word, PowerPoint. Khám phá thêm về VBA để nâng cao hiệu suất làm việc.
Discussion about this post