Dưới đây là hướng dẫn chi tiết toàn diện về MsgBox trong VBA Excel, giúp bạn sử dụng linh hoạt trong mọi tình huống — từ thông báo đơn giản đến xử lý lựa chọn người dùng.

MsgBox(prompt, [buttons], [title])
Giải thích:
prompt:    Chuỗi văn bản cần hiển thị (bắt buộc).
buttons:    Kiểu nút và icon bạn muốn hiển thị (tùy chọn).
title:    Tiêu đề cửa sổ MsgBox (tùy chọn).
Ví dụ hàm Msgbox vba excel đơn giản
Sub ThongBao()
    MsgBox "Đây là thông báo đơn giản."
End SubVí dụ hàm Msgbox nhiều dòng vba excel
Sub ThongBao()
    MsgBox "Dòng 1" & vbCrLf "Dòng 2" & vbCrLf  & "Dòng 3"
End Sub

Tại sao phải thêm tiêu đề và icon khi làm ứng dụng Excel ?
Trả lời: giúp phần mềm trực quan hơn với người dùng.
Sub ThongBaoVoiTieuDe()
    MsgBox "Dữ liệu đã được lưu thành công!", vbInformation, "Thông báo"
End SubTại sao cần phản hồi người dùng từ hàm Msgbox ?
Trả lời: nếu bạn hỏi người dùng có muốn xóa hay không, thì làm sao bạn biết được là người dùng trả lời có hay không.
Sub XacNhanXoa()
    Dim traLoi As VbMsgBoxResult
    traLoi = MsgBox("Bạn có chắc chắn muốn xóa không?", vbYesNo + vbQuestion, "Xác nhận")
    If traLoi = vbYes Then
        MsgBox "Dữ liệu đã bị xóa.", vbInformation
    Else
        MsgBox "Thao tác đã bị hủy.", vbExclamation
    End If
End Sub📋 Các giá trị trả về có thể là:
Giá trị hằng số    Người dùng đã nhấn
vbOK    OK
vbCancel    Cancel
vbYes    Yes
vbNo    No
vbRetry    Retry
vbAbort    Abort
vbIgnore    Ignore
Hằng số    Mô tả
vbOKOnly    Chỉ nút OK
vbOKCancel    OK và Cancel
vbYesNo    Yes và No
vbYesNoCancel    Yes, No, Cancel
vbAbortRetryIgnore    Abort, Retry, Ignore
Sub XacNhanLuu()
    Dim kq As VbMsgBoxResult
    kq = MsgBox("Bạn có muốn lưu dữ liệu trước khi thoát không?", vbYesNoCancel + vbQuestion, "Lưu dữ liệu")
    Select Case kq
        Case vbYes
            MsgBox "Dữ liệu đã được lưu!", vbInformation
        Case vbNo
            MsgBox "Không lưu dữ liệu.", vbExclamation
        Case vbCancel
            MsgBox "Thao tác bị hủy.", vbCritical
    End Select
End SubMsgBox "Dòng 1" & vbCrLf & "Dòng 2"
Hoặc có thể dùng Chr(10) (xuống dòng):
MsgBox "Dòng 1" & Chr(10) & "Dòng 2"
Sub KiemTraGiaTri()
    Dim cellValue As String
    cellValue = Range("A1").Value
    If cellValue = "" Then
        MsgBox "Ô A1 đang trống!", vbExclamation, "Cảnh báo"
    Else
        MsgBox "Giá trị trong A1 là: " & cellValue, vbInformation
    End If
End SubTìm kiếm:
Hướng dẫn chi tiết về Msgbox trong VBA Excel, ứng dụng vào làm phần mềm thực tế thế nào ?