RaoVat24h
Excel Office

Hướng dẫn toàn tập về MsgBox trong Excel VBA

Advertisement
Để tăng tính tương tác cho bảng tính Excel có sử dụng VBA của bạn, cụ thể trong trường hợp bạn muốn đưa ra một thông báo, một lưu ý cho người dùng, chúng ta dùng MsgBox trong Excel VBA.

MSGBOX CƠ BẢN NHẤT

Một MsgBox trong Excel VBA có thể được tạo ra trong trình soạn thảo code VBA của Excel như sau:
MsgBox cơ bản trong Excel VBA

MsgBox cơ bản trong Excel VBA
Chạy đoạn code trên trong Excel VBA, chúng ta sẽ nhật được kết quả như sau:
Cách sử dụng MsgBox trong Excel VBA
Mặc định thì tiêu đề (tham số title sẽ được nói tới trong đoạn dưới) của hộp thoại MsgBox trong Excel sẽ có chữ “Microsoft Excel”. Chúng ta có thể thay đổi tiêu đề này bằng cách sửa đoạn code trên như sau:
Sử dụng Msgbox trong Excel VBA với tiêu đề tự đặt

Sử dụng Msgbox trong Excel VBA với tiêu đề tự đặt

CÁC THAM SỐ CỦA MSGBOX TRONG EXCEL VBA

Ở phần trước, nếu các bạn chỉ sử dụng MsgBox trong Excel VBA như một hộp thoại thông báo, thì mình tin là đã đủ những gì “cần thiết phải có ở mức tối thiểu” rồi, trong phần này, chúng ta sẽ đề cập đến những đoạn code sẽ giúp chúng ta điều chỉnh được MsgBox theo ý muốn.
Trong VBA, khi bạn bắt đầu viết “MsgBox ” trong 1 Sub, thì trình soạn thảo VBA sẽ gợi ý cho bạn những tham số mà MsgBox nhận như sau:
Tham số của MsgBox trong Excel VBA

Tham số của MsgBox trong Excel VBA
Các bạn để ý, ở đây prompt, buttons, title, helpfile, context là những tham số của MsgBox, những tham số không ở trong dấu ngoặc vuông là những tham số bắt buộc (prompt); những tham số ở trong dấu ngoặc vuông (buttons, title, helpfile, context) là những tham số không bắt buộc.
Trong phần cơ bản của bài viết, bạn đã làm quen với tham số prompt và title của MsgBox, trong phần này, chúng ta sẽ đi tìm hiểu các tham số tiếp theo là tham số Buttons.
Tham số helpfile và context rất hiếm khi chúng ta phải sử dụng tới, nên sẽ được trình bày ở một bài viết chuyên sâu khác.
Phần “As VbMsgBoxResult” là giá trị trả về của hàm MsgBox khi người dùng bấm nút trên hộp thoại MsgBox.

THAM SỐ BUTTONS

Tham số Buttons của MsgBox nhận những giá trị sau đây
Giá trị Nhóm Kiểu Miêu tả
vbOKOnly 1 Buttons Ok button.
vbOKCancel 1 Buttons Ok and cancel buttons.
vbAbortRetryIgnore 1 Buttons Abort, Retry and Ignore buttons.
vbYesNoCancel 1 Buttons Yes, No and Cancel buttons.
vbYesNo 1 Buttons Yes and No buttons.
vbRetryCancel 1 Buttons Retry and Cancel buttons.
vbCritical 2 Icon Critical Message icon.
vbQuestion 2 Icon Warning Query icon.
vbExclamation 2 Icon Warning Message icon.
vbInformation 2 Icon Information Message icon.
vbDefaultButton1 3 Default button Set button 1 to be selected.
vbDefaultButton2 3 Default button Set button 2 to be selected.
vbDefaultButton3 3 Default button Set button 3 to be selected.
vbDefaultButton4 3 Default button Set button 4 to be selected. Note that there will only be four buttons if the help button is included with vbAbortRetryIgnore or vbYesNoCancel.
vbApplicationModal 4 Modal Cannot access Excel while the button is displayed. Msgbox is only displayed when Excel is the active application.
vbSystemModal 4 Modal Same as vbApplicationModal but the message box is displayed in front of all applications.
vbMsgBoxHelpButton 5 Other Adds a help button
vbMsgBoxSetForeground 5 Other Sets the message box windows to be the foreground window
vbMsgBoxRight 5 Other Right aligns the text.
vbMsgBoxRtlReading 5 Other Specifies text should appear as right-to-left reading on Hebrew and Arabic systems.
Phần bảng trên mình chủ động không dịch mà để nguyên như theo nguồn từ Microsoft
Tham số Buttons được chia ra làm nhiều nhóm khác nhau:
  • Nhóm 1 quyết định nút gì sẽ được sử dụng trên MsgBox
  • Nhóm 2 quyết định biểu tượng gì sẽ được sử dụng trên MsgBox
  • Nhóm 3 quyết định nút nào sẽ được chọn mặc định khi MsgBox hiện ra
  • Nhóm 4 quyết định MsgBox được hiện ra như thế nào so với các ứng dụng khác
  • Nhóm 5 quyết định một số thiết lập khác của MsgBox
Ví dụ sử dụng tham số Buttons trong MsgBox: bạn có thể kết hợp nhiều giá trị của tham số này bằng dấu + giữa các giá trị như sau (dấu _ để nối code dòng trên và dòng dưới trong VBA giúp chúng ta dễ theo dõi các dòng code bị dài quá). Với mỗi nhóm, chúng ta chỉ được lấy ra 1 giá trị.
Sử dụng MsgBox trong VBA Excel và tham số Buttons

Sử dụng MsgBox trong VBA Excel và tham số Buttons
Kết quả chúng ta nhận được một MsgBox có nút OK, nút Cancel, biểu tượng màu đỏ, nút OK được chọn sẵn (để bấm Enter trên bàn phím cho nhanh), và MsgBox này chỉ hiển thị khi chương trình Excel đang được chọn (Như bạn thấy trong hình, cửa sổ File Explorer đè lên phía bên phải của hộp thoại MsgBox)
Cách sử dụng MsgBox trong VBA với tham số Buttons

Cách sử dụng MsgBox trong VBA với tham số Buttons
Nếu bây giờ chúng ta sửa lại đoạn code phía trên một chút như sau:
Đoạn code số 3 chỉ khác đoạn code số 2 ở chỗ, thay vì dùng vbApplicationModal, thì chúng ta dùng vbSystemModal, và đây là kết quả:
Sử dụng MsgBox trong Excel VBA với tham số vbSystemModal

Sử dụng MsgBox trong Excel VBA với tham số vbSystemModal
Sự khác nhau ở đây là, MsgBox này sẽ ở trên toàn bộ các cửa sổ khác và phía góc trên bên trái của hộp thoại MsgBox, biểu tượng cũng khác với hộp thoại MsgBox ở ví dụ trước.

KIỂM TRA CÁC GIÁ TRỊ TRẢ VỀ TỪ HÀM MSGBOX

Khi hộp thoại MsgBox hiện ra để người dùng tương tác, bạn muốn biết người dùng đã bấm vào lựa chọn nào, bạn có thể sử dụng code sau đây để kiểm tra điều đó:
Code kiểm tra người dùng lựa chọn nút gì trên MsgBox

Code kiểm tra người dùng lựa chọn nút gì trên MsgBox
Toàn bộ các đoạn code trong bài các bạn có thể xem tại Gist:
Sub HeoBasicMessageBox()
MsgBox “Xin chao cac ban da den voi Hoc Excel Online”
End Sub
Sub HeoBasicMessageBoxWithTitle()
MsgBox “Xin chao cac ban da den voi Hoc Excel Online”, , “HEO”
End Sub
Sub HeoBasicMessageBox2()
MsgBox “Hoc Excel Online”, _
vbOKCancel + _
vbCritical + _
vbDefaultButton1 + _
vbApplicationModal
End Sub
Sub HeoBasicMessageBox3()
MsgBox “Hoc Excel Online”, _
vbOKCancel + _
vbCritical + _
vbDefaultButton1 + _
vbSystemModal
End Sub
Sub HeoMsgBoxResult1()
Dim response As VbMsgBoxResult
response = MsgBox(“Hoc Excel Online”, vbYesNo + vbCritical)
MsgBox response
End Sub
Sub HeoMsgBoxResult2()
Dim response As VbMsgBoxResult
response = MsgBox(“Hoc Excel Online”, vbYesNo + vbQuestion)
MsgBox response
End Sub
Sub HeoMsgBoxResult3()
Dim response As VbMsgBoxResult
response = MsgBox(“Hoc Excel Online”, vbYesNo + vbExclamation)
MsgBox response
End Sub
Sub HeoMsgBoxResult4()
Dim response As VbMsgBoxResult
response = MsgBox(“Hoc Excel Online”, vbYesNo + vbInformation)
MsgBox response
End Sub
Sub HeoMsgBoxResult5()
Dim response As VbMsgBoxResult
response = MsgBox(“Error”, vbAbortRetryIgnore + vbDefaultButton1 + vbMsgBoxHelpButton)
MsgBox response
End Sub
Sub HeoMsgBoxResult6()
Dim response As VbMsgBoxResult
response = MsgBox(“Error”, vbAbortRetryIgnore + vbDefaultButton2 + vbMsgBoxHelpButton)
MsgBox response
End Sub
Sub HeoMsgBoxResult7()
Dim response As VbMsgBoxResult
response = MsgBox(“Error”, vbAbortRetryIgnore + vbDefaultButton3 + vbMsgBoxHelpButton)
MsgBox response
End Sub
Sub HeoMsgBoxResult8()
Dim response As VbMsgBoxResult
response = MsgBox(“Error”, vbAbortRetryIgnore + vbDefaultButton4 + vbMsgBoxHelpButton)
MsgBox response
End Sub
Sub HeoMsgBoxResult9()
Dim response As VbMsgBoxResult
response = MsgBox(“Want to try again?”, vbRetryCancel + vbQuestion, “Error”)
MsgBox response
End Sub
Sub HeoMsgBoxResult10()
MsgBox “Critical error occurred”, vbCritical, “System Error”
End Sub

?

Rate this post

DienDan.Edu.Vn

DienDan.Edu.Vn Cám ơn bạn đã quan tâm và rất vui vì bài viết đã đem lại thông tin hữu ích cho bạn.
DienDan.Edu.Vn! là một website với tiêu chí chia sẻ thông tin,... Bạn có thể nhận xét, bổ sung hay yêu cầu hướng dẫn liên quan đến bài viết. Vậy nên đề nghị các bạn cũng không quảng cáo trong comment này ngoại trừ trong chính phần tên của bạn.
Cám ơn.

Đăng bình luận

(+84) (918) 369.468