Giới thiệu hàm msgbox

tuhocvba

Administrator
Thành viên BQT
Cú pháp:
Msgbox(prompt [,buttons] [,title] [,helpfile, context] )

Trong đó:
Tham số Prompt nhất định phải được chỉ định, không thể giản lược. Đây chính là nội dung tin nhắn thông báo được hiển thị ra hộp thoại (Dialog box).
Tham số buttons có thể giản lược. Nó là tham số thể hiện chủng loại nút bấm được hiển thị ra trên hộp thoại.
Tham số Title có thể giản lược. Nó là dòng thông báo tiêu đề trên hộp thoại.
Tham số helpfile có thể giản lược. Đây là tham số chỉ định một file help được mở ra khi click vào nút bấm Help trên hộp thoại. Nếu có tham số helpfile thì
nhất định phải có tham số context.

Nội dung:
Hàm Msgbox phản ánh kiểu nút bấm được bấm hiển thị trên hộp thoại, hiển thị nội dung tin thông báo trên hộp thoại.
Chuỗi ký tự có thể chỉ định đối với prompt (tin nhắn thông báo hiển thị) là khoảng 1 byte ký tự tức ước chừng 1024 ký tự.
Tuy nhiên tùy vào loại ngôn ngữ sử dụng mà độ dài ký tự có sự khác nhau. (Về điều này thì chữ tiếng nhật sẽ khác với chữ tiếng anh, chúng ta không
cần quá quan tâm tới vấn đề này vì lời thông báo thông thường cũng không quá dài-lời bình người dịch).
Để tạo xuống dòng, ta có thể dùng chr(13) hoặc chr(10). Hay dùng trực tiếp những ký tự đã được VisualBasic định nghĩa là VbCr, VbLf, VBCrLf .

Đối với tham số buttons, các bạn có thể sử dụng các nút bấm theo định nghĩa như dưới đây.
Định nghĩaGiá trịNội dung
vbOKOnly0Chỉ hiển thị nút bấm [OK]
vbOKCancel1Hiển thị nút bấm [OK] và [Cancel]
vbAbortRetryIgnore2Hiển thị ba nút bấm [Abort], [Retry], [Ignore] với ý nghĩa Hủy bỏ, Thử lại, Bỏ qua
vbYesNoCancel3Hiển thị ba nút bấm [Yes], [No],[Cancel]
vbYesNo4Hiển thị hai nút bấm [Yes], [No]
vbRetryCancel5Hiển thị nút bấm [Retry],[Cancel]
vbCritical16Hiển thị icon cảnh báo
vbQuestion32Hiển thị icon câu hỏi thảo luận
vbExclamation48Hiển thị icon chú ý
vbInformation64Hiển thị icon thông tin
vbDefaultButton10Hiển thị nút bấm theo tiêu chuẩn 1
vbDefaultButton2256Hiển thị nút bấm theo tiêu chuẩn 2
vbDefaultButton3512Hiển thị nút bấm theo tiêu chuẩn 3
vbDefaultButton4768Hiển thị nút bấm theo tiêu chuẩn 4
vbApplicationModal0Đặt thành phương thức ứng dụng. Ứng dụng hiện được chọn không thể tiếp tục chạy cho đến khi bạn trả lời hộp thông báo
vbSystemModal4096Đặt thành chế độ hệ thống. Tất cả các ứng dụng bị treo cho đến khi bạn trả lời hộp thông báo

Liệt kê hình ảnh các loại nút bấm.
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Bạn cần đăng nhập để thấy hình ảnh
Ví dụ, ta muốn hiển thị nút bấm [Yes],[No] đồng thời hiển thị cả icon chú ý, khi đó tham số button là sự kết hợp của hai định nghĩa:
vbYesNo và vbExclamation, tham số chỉ định sẽ là (vbYesNo + vbExclamation)
Mã:
Sub test()
    MsgBox "noi dung tin nhan", (vbYesNo + vbExclamation)
 
End Sub
Giá trị trả về của hàm Msgbox sẽ theo như bảng dưới đây.
Định nghĩaGiá trịNội dung
vbOK1Đã ấn vào nút [OK]
vbCancel2Đã ấn vào nút [Cancel]
vbAbort3Đã ấn vào nút [Abort]
vbRetry4Đã ấn vào nút [Retry]
vbIgnore5Đã ấn vào nút [Ignore]
vbYes6Đã ấn vào nút [Yes]
vbNo7Đã ấn vào nút [No]
Nếu chúng ta giản lược tham số title, khi đó thanh tiêu đề của hộp thoại thông báo sẽ hiển thị chế độ mặc định [Microsoft Excel]
Trường hợp chúng ta chỉ định tham số helpfile, khi hộp thoại thông báo hiện ra, ta ấn phím [F1], khi đó chỉ định hướng dẫn sẽ hiện ra
ứng với tham số context mà chúng ta đã chỉ định kèm với helpfile.
Tóm lại khi chỉ định tham số helpfile thì nút [Help] sẽ hiện ra ở trên hộp thoại thông báo. (Thường ít dùng, bạn có thể không cần quan tâm-lời người dịch)

Ví dụ:
Ở ví dụ dưới đây, ta sẽ cho hiển thị nút bấm [Yes], [No] và icon câu hỏi thảo luận hiện trên hộp thoại thông báo.
Mã:
Sub Sample()
    Dim rc As Integer
    rc = MsgBox("Tiep tuc xu ly?", vbYesNo + vbQuestion, "Xac nhan")
    If rc = vbYes Then
        MsgBox "Tien hanh xu ly"
    Else
        MsgBox "Khong tien hanh xu ly"
    End If
End Sub

Tóm lại: Có rất nhiều cách sử dụng hàm Msgbox, tùy thuộc vào mỗi người.
Cho hiển thị nút bấm nào, cho hiển thị icon nào.
Và trên hết là ứng với mỗi trường hợp người dùng ấn vào nút bấm nào, thì đoạn chương trình tiếp theo sẽ xử lý thế nào.
Nguồn bài viết được dịch từ:
Mã:
http://officetanaka.net/excel/vba/function/MsgBox.htm
 
Sửa lần cuối:

tuhocvba

Administrator
Thành viên BQT
Một số ví dụ thường gặp:
Ví dụ 1:
Mã:
MsgBox "Chuong trinh da hoan thanh"
Bạn cần đăng nhập để thấy đính kèm

Ví dụ 2:
Mã:
MsgBox "Da update xong du lieu", vbInformation
Bạn cần đăng nhập để thấy đính kèm

Ví dụ 3:
Mã:
MsgBox "Du lieu khong ton tai", vbExclamation
Bạn cần đăng nhập để thấy đính kèm

Ví dụ 4:
Mã:
MsgBox "Du lieu khong ton tai" & vbCrLf & "Chuong trinh tam dung", vbCritical
Bạn cần đăng nhập để thấy đính kèm

Ví dụ 5: Tùy thuộc vào phản hồi của người dùng mà thuc thi lenh khac nhau
Mã:
Sub Sample()
    Dim Result As Long
    Result = MsgBox("Tiep tuc chay chuong trinh?", vbYesNo + vbExclamation)
    If Result = vbYes Then
        ''Chuong trinh xu ly khi nguoi dung click YES
    Else
        ''Chuong trinh xu ly khi nguoi dung click NO
    End If
End Sub
Bạn cần đăng nhập để thấy đính kèm
 

PTHhn

Yêu THVBA như điếu đổ
Cảm ơn các bạn tuhocvba.net đã có một bài viết rất chi tiết và bổ ích.
Có một vấn đề về thông báo. Đó là nếu người dùng đang mở ứng dụng khác, chẳng hạn đang lướt web trong khi chờ macro chạy. Lúc này nếu macro hiển thị thông báo nhưng sẽ không hiện lên, bởi vì ứng dụng Excel đang nằm ở dưới khay hệ thống, cái hiện ra ngoài cùng màn hình là trình duyệt web. Nếu nhìn xuống khay hệ thống, bạn sẽ thấy ứng dụng Excel sáng lên, nhưng thường thì mọi người không để ý mấy.
Vậy là các bạn cứ mải đọc báo lướt web mà không biết macro đã thực thi xong và đang ra thông báo "HoanThanhXongRoi".
Để thông báo của Excel chiếm quyền ưu tiên, ra thông báo chèn lên trên giao diện website hay bất cứ cái gì khác thì chúng ta có tham số vbSystemModal.
Ví dụ:
Mã:
Sub Main()
    Call MsgBox("Tuhocvba.net", vbYesOnly Or vbSystemModal)
End Sub
Hoặc:
Mã:
Sub Main()
    Call MsgBox("Tuhocvba.net", vbYesNo Or vbSystemModal)
End Sub
 
Top