Sử dụng Hộp thư (Microsoft Word)
Khi bạn tạo macro trong Word, bạn có thể dễ dàng kết hợp việc sử dụng hộp thư. Chúng thường được sử dụng để truyền tải thông tin đến người dùng và nhận một số đầu vào thô sơ. Bạn bao gồm các hộp thông báo bằng cách sử dụng lệnh MsgBox. Phần sau của macro tạo một hộp thông báo rất đơn giản:
MsgBox "The macro is done"
Bạn cũng có thể thêm ký hiệu vào hộp thư của mình bằng cách thêm mã loại ký hiệu như một phần của lệnh gọi MsgBox. Các ký hiệu này được sử dụng rộng rãi trong nhiều hộp thoại Windows. Bốn loại ký hiệu sau đây có thể được sử dụng:
Type |
Enumeration |
Symbol |
||
16 |
vbCritical |
White X in a red circle (and “ding”) |
||
32 |
vbQuestion |
Question mark in a circle |
||
48 |
vbExclamation |
Exclamation point in a circle |
||
64 |
vbInformation |
Information symbol (lowercase i in a circle) |
Bạn có thể sử dụng số trong cột Loại hoặc kiểu liệt kê trong cột Liệt kê với câu lệnh MsgBox. Ví dụ, giả sử bạn muốn bao gồm biểu tượng dấu chấm than. Điều này thường được bao gồm trong các hộp thoại như một thông báo về thời điểm điều gì đó quan trọng đã xảy ra hoặc sắp xảy ra. Để đưa biểu tượng này vào hộp thư của bạn, bạn sẽ bao gồm một trong các dòng mã sau:
MsgBox "Can't run the macro on the text", 48 MsgBox "Can't run the macro on the text", vbExclamation
Cho đến nay, lệnh MsgBox đã được sử dụng như một câu lệnh, nhưng bạn cũng có thể sử dụng nó như một hàm. Nếu bạn làm như vậy, bạn có thể sử dụng nó để nhận thông tin đầu vào đơn giản từ người dùng. Để làm cho chức năng MsgBox hữu ích hơn, Word cho phép bạn hiển thị nhiều nút có thể nhấp hơn trong hộp thoại ngoài nút OK. Điều này được thực hiện bằng cách điều chỉnh mã loại, được sử dụng cho các ký hiệu hiển thị trong hộp thông báo. Sau đây là các tổ hợp nút khác nhau mà bạn có thể hiển thị trong hộp thư của mình:
Type |
Enumeration |
Button Types |
||
1 |
vbOKCancel |
OK, Cancel |
||
2 |
vbAbortRetryIgnore |
Abort, Retry, Ignore |
||
3 |
vbYesNoCancel |
Yes, No, Cancel |
||
4 |
vbYesNo |
Yes, No |
||
5 |
vbRetryCancel |
Retry, Cancel |
Để sử dụng các nút, bạn chỉ cần thêm giá trị của loại nút vào giá trị bạn muốn sử dụng cho biểu tượng. Bạn có thể sử dụng các giá trị trong cột Loại hoặc các kiểu liệt kê trong cột Liệt kê; VBA không quan tâm cái nào được sử dụng. Trong ví dụ trước, bạn đã sử dụng mã 48 hoặc kiểu liệt kê của vbExclamation để hiển thị biểu tượng dấu chấm than. Nếu bạn cũng muốn bao gồm các nút Hủy bỏ, Thử lại, Bỏ qua, bạn có thể chỉ cần sử dụng các dòng mã sau:
J = MsgBox "Can't run the macro on the text", 48 + 2 J = MsgBox "Can't run the macro on the text", vbExclamation + vbAbortRetryIgnore
Nếu bạn chọn sử dụng giá trị số, bạn thực sự có thể cộng các giá trị lại với nhau. Nói cách khác, bạn có thể sử dụng “50” thay vì “48 + 2”. Sau khi dòng mã được thực thi, J sẽ bằng một giá trị cho biết nút nào đã được nhấp. Khi thực hiện thử nghiệm của bạn để xem J bằng bao nhiêu, tốt nhất là sử dụng các phép liệt kê, nhưng bạn có thể sử dụng các giá trị. Đây là các giá trị trả về có thể có:
Value |
Enumeration |
Button Clicked |
||
1 |
vbOK |
OK |
||
2 |
vbCancel |
Cancel |
||
3 |
vbAbort |
Abort |
||
4 |
vbRetry |
Retry |
||
5 |
vbIgnore |
Ignore |
||
6 |
vbYes |
Yes |
||
7 |
vbNo |
No |
Bạn có nên sử dụng các giá trị hoặc kiểu liệt kê với MsgBox không? Nó thực sự phụ thuộc vào sở thích cá nhân, nhưng có hai lợi thế lớn khi sử dụng phép liệt kê. Đầu tiên, khi bạn nhập mã VBA, trình soạn thảo sẽ tự động đưa ra “gợi ý” về các kiểu liệt kê có sẵn. Thứ hai, các bảng liệt kê được mô tả nhiều hơn trong mã của bạn, có nghĩa là bạn có thể dễ dàng thấy tác dụng của chúng trong MsgBox. Thứ ba, bảng liệt kê bảo vệ bạn trước mọi thay đổi có thể xảy ra mà Microsoft có thể thực hiện đối với cách MsgBox hoạt động trong tương lai. Điều này không có nghĩa là Microsoft sẽ thực hiện các thay đổi; các giá trị hiển thị trong mẹo này đã không thay đổi trong nhiều năm. Nhưng nếu họ thay đổi các giá trị, các bảng liệt kê sẽ tiếp tục hoạt động vì Microsoft chỉ đơn giản là thay đổi ý nghĩa của các bảng liệt kê đằng sau hậu trường.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên các trang WordTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
WordTips là nguồn của bạn để đào tạo Microsoft Word hiệu quả về chi phí.
(Microsoft Word là phần mềm xử lý văn bản phổ biến nhất trên thế giới.) Mẹo này (8931) áp dụng cho Microsoft Word 2007, 2010, 2013, 2016, 2019 và Word trong Office 365. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện menu cũ hơn của Word tại đây: