3 Cách Gõ Tiếng Việt Trong VBA Excel

Như các bạn đã biết, Excel là một phần mềm nằm trong bộ Microsoft Office được Microsoft là một công ty của Mỹ thiết kế. Cùng với sự phổ biến mạnh mẽ của phần mềm trên toàn thế giới thì các nhà phát triển cũng không ngừng thêm các ngôn ngữ vào phần mềm này. Tuy nhiên, trong VBA thì vẫn chưa thể nhận dạng tiếng Việt. Vậy nên, trong bài viết ngày hôm nay mình sẽ hướng dẫn các bạn 3 cách để gõ tiếng Việt trong VBA.

Tạo ô phụ có tiếng Việt

Với cách thứ nhất, bước đầu tiên các bạn đơn giản chỉ cần ghi nội dung tiêu đề và nội dung thông báo vào hai ô khác nhau bất kì.

Ghi nội dụng vào ô bất kỳ

Tiếp theo các bạn mở hộp thoại Visual Basic bằng cách ở thẻ Developer chọn Visual Basic. Đây chính là nơi chúng ta sẽ thao tác chính các bước tiếp theo.

mở hộp thoại visual basic

Sau khi hộp thoại trên hiện ra, các bạn ấn chuột phải vào chữ Sheet1 (đây là tên sheet hiện tại của các bạn, nếu bạn không thay đổi thì tên mặc định là Sheet1) trong mục Project nằm ở phía bên trái, chọn Insert rồi chọn Module để tạo một module mới. Từ đây chúng ta sẽ viết code trực tiếp tại module này.

tạo một module mới

Đầu tiên các bạn nhập Sub goTiengViet() (goTiengViet là tên do mình đặt còn các bạn muốn đặt sao cũng được hết, không có vấn đề gì cả) để khai báo tên của hàm này, khi nhập xong và ấn Enter thì hệ thống sẽ tự phát sinh thêm dòng End Sub ở bên dưới. Sau đó chúng ta sẽ khai báo hai biến tieude và noidung thuộc kiểu chuỗi (string) chính là nội dung tiêu đề và nội dung thông báo cần lấy. Tiếp theo là đoạn code chính của chúng ta, ta sẽ gán tieude bằng với giá trị hiện tại của ô C4 (ô chứa nội dung tiêu đề trong sheet) và gán noidung với giá trị hiện tại của ô C5. Dòng cuối cùng sẽ là câu lệnh dùng để hiển thị thông báo, các bạn cứ nhập theo mình là được.

Đoạn code: 

tieude = ActiveSheet.Range("C4").Value

noidung = ActiveSheet.Range("C5").Value

Application.Assistant.DoAlert tieude, noidung, msoAlertButtonOK, msoAlertIconInfo, 0, 0, 0

cách một gõ tiếng việt

Sử dụng phép nỗi chuỗi và hàm Chrw

Với cách hai thì chúng ta sẽ thay đổi đoạn code trên một chút và không sử dụng giá trị từ hai ô C4, C5 mà sử dụng trên phần mềm Word. Trước tiên các bạn mở Word lên rồi ở thẻ Developer chọn Record Macro. Ở hộp thoại hiện lên, tại mục Macro name các bạn hãy nhập một tên dễ gợi nhớ nhé.

record macro trong word

Tiếp theo các bạn nhập nội dung tiêu đề vào phía dưới như thao tác đánh văn bản bình thường. Sau khi ghi xong các bạn ấn vào nút Stop Recording rồi ấn Visual Basic.

nhập nội dung vào word

Ở hộp thoại hiện lên, các bạn ấn vào Normal, Modules rồi chọn NewMacros. Lúc này ngay bên phải sẽ là đoạn code mà chúng ta cần sao chép để gán vào biến tieude trong module bên Excel. Các bạn lưu ý chỉ sao chép từ đoạn sau dấu bằng nhé.

lấy nội dung từ macro trong word

Làm hoàn toàn tương tự với phần nội dung, sau khi xong chúng ta sẽ được kết quả như hình bên dưới. Các bạn lưu ý đối với cách làm này thì dòng cuối cùng các bạn vẫn giữ nguyên và không thay đổi nhé.

Đoạn code:

tieude = "Tiêu " & ChrW(272) & "ê" & ChrW(768)

noidung = ChrW(272) & "ây la" & ChrW(768) & " phâ" & ChrW( _

        768) & "n nô" & ChrW(803) & "i dung cu" & ChrW(777) & "a thông ba" & ChrW _

        (769) & "o"

cách hai gõ tiếng việt

Sử dụng hàm để chuyển chuỗi nhập vào thành tiếng Việt

Bạn tải file code tại đây

Đối với cách thứ 3, chúng ta sẽ dùng thêm một hàm bên ngoài để có thể chuyển đổi chuỗi nhập vào thành tiếng Việt (file hàm này mình sẽ đính kèm trong bài viết). Các bạn sao chép toàn bộ hàm này rồi dán ở bên dưới chữ End Sub.

sử dụng thêm hàm bên ngoài

Tiếp theo với biến tieude và noidung chúng ta sẽ nhập như lúc chúng ta viết tiếng Việt có dấu nhưng không bật bộ gõ Tiếng Việt như hình bên dưới (ví dụ như tên sẽ ghi là teen). Ở dòng dưới cùng lúc này tham số đầu tiên của hàm DoAlert sẽ là giá trị trả về của hàm UniConvert với tham số đầu tiên là giá trị biến tieude và tham số thứ 2 là kiểu gõ (bao gồm Telex và VNI, các bạn chọn đúng kiểu rồi nhập vào thôi). Các bạn cũng là tương tự với biến noidung, những phần sau thì không cần thay đổi.

Đoạn code:

tieude = "Tieeu DDeef"

noidung = "DDaay laf phaafn nooji dung cura thoong baso"

Application.Assistant.DoAlert UniConvert(tieude, "Telex"), UniConvert(noidung, "Telex"), msoAlertButtonOK, msoAlertIconInfo, 0, 0, 0

cách ba gõ tiếng việt

Với cả 3 cách trên thì kết quả chúng ta thu được sẽ như hình bên dưới. Chúc các bạn thực hành tốt!

kết quả gõ tiếng việt

Video hướng dẫn thực hiện

 

CHO ĐIỂM BÀI VIẾT NÀY

vote data

Bình luận bài viết

0989.717.035
ZALO CHAT
TOP