Home » VBA Excel » VBA Excel Hộp thoại thông báo

VBA Excel Hộp thoại thông báo

viết bởi Lê Quốc Thái
  1. Loạt các bài viết có liên quan chuyên đề VBA:
  2. VBA Excel Hộp thoại thông báo
  3. VBA Excel Biến trong VBA Excel
  4. VBA Excel sử dụng Scripting Dictionary
  5. VBA Excel Biến trong VBA Excel
  6. VBA Excel Workbook, worksheet
  7. VBA Excel Range, Cells
  8. VBA Excel Hàm trong Excel VBA
  9. VBA Excel Events, Application Object
  10. VBA Excel Function and Sub Excel VBA
  11. VBA Excel Array Mảng trong Excel VBA
  12. VBA Excel FileSystemObject trong Excel VBA
  13. VBA Excel Collection trong Excel VBA
  14. VBA Excel Hashtable trong Excel VBA
  15. VBA Excel Stack trong Excel VBA
  16. VBA Excel Queue trong Excel VBA
  17. VBA Excel SortedList Excel VBA
  18. VBA Excel ArrayList Excel VBA
  19. VBA Excel Ví dụ về Scripting Dictionary
  20. Sách VBA Excel 2016 power programming with vba (pdf)
1. MsgBox:

Hộp thoại thông báo msgbox trong VBA dùng để tạo thông báo thông tin nào cho người dùng khi cần thiết.
Cấu trúc của hàm msgbox trong VBA:

MsgBox(Prompt, [Buttons As VbMsgBoxStyle], [Title], [HelpFile], [Context]) As VbMsgBoxResult

Chú thích:

Prompt: Bắt buộc (phải có). Là nội dung của hộp thoại thông báo. Chiều dài tối đa của Prompt là 1024 ký tự. Nếu nội dung hộp thoại thông báo có nhiều dòng, để tách dòng bạn có thể dùng các ký tự tách dòng, gồm: Chr(13), Chr(10) hoặc từ khóa vbNewline.
Buttons: Không bắt buộc. Là hằng số quy định cụ thể số lượng và loại các nút hiển thị. Nếu không sử dụng, giá trị mặc định là số 0.

Title: Không bắt buộc. Là chuỗi được hiển thị trên thanh tiêu đề của hộp thoại. Nếu bỏ qua, tên ứng dụng được đặt trong thanh tiêu đề (ở đây, cụ thể ở đây là “Microsoft Excel”).
HelpFile: Không bắt buộc. Chuỗi xác định tên tập tin trợ giúp sử dụng để cung cấp các trợ giúp theo ngữ cảnh cho các hộp thoại.
ContextKhông bắt buộc. Là số thứ tự tình huống trong HelpFile. Nếu HelpFile có thì Context phải có.
VbMsgBoxResult:

Câu lệnh đơn giản như sau:

MsgBox "Nội dung thông báo."

Ví dụ 1:

Sub msgbox1()
    MsgBox "Xin chào!"
End Sub

Có thể nối nội dung thông báo với nội dung trên bảng tính. 

Ví dụ 2: Với [A1]="Exl2Lab"
Sub msgbox2()
    MsgBox "Xin chào! " & Sheet1.Range("A1")
End Sub

Để tạo thông báo có nhiều dòng (xuống dòng trong bảng thông báo) ta dùng từ khóa vbNewLine.
Ví dụ 3:

Sub msgbox3()
    MsgBox "Xin chào! " & Sheet1.Range("A1") & vbNewLine & "Email: " & Sheet1.Range("A2")
End Sub
 

Ngoài ra, msgbox thường hay dùng để kiểm tra kết quả từng đoạn code khi viết, để tạo thông báo nhắc người dùng xác nhận trước một tác vụ quan trọng (như xóa dữ liệu, in ấn…).
Ví dụ 4:

Sub mgbDelete()
Dim ans As Integer
ans = MsgBox("Ban muon xoa du lieu tren sheet nay?", vbYesNo + vbQuestion, "Xoa du lieu")
If ans = vbYes Then
    'Chọn Yes thì thực hiện tác vụ
    Cells.ClearContents
Else
    'không làm gì
End If
End Sub

Chi tiết các ví dụ xem file đính kèm ở cuối bài.

2. InputBox:

Cấu trúc hàm InputBox:

InputBox(Prompt,[Title],[Default],[Xpos],[Ypos],[HelpFile,Context]) As String

Chú thích:
Prompt: Bắt buộc. Là nội dung hiển thị ở trong hộp thoại thông báo, tối đa 1024 ký tự. Để muốn xuống dòng trong hộp thoại thông báo thì dùng ký tự đặc biệt Chr(10) hoặc Chr(13) hoặc dùng vbNewLine chèn vào giữa các dòng.
Title: Không bắt buộc. Là tiêu đề của hộp thoại thông báo, nếu để trống thì tiêu đề là tên ứng dụng (ở đây là “Microsoft Excel”).
Default: Không bắt buộc. Là giá trị mặc định nhập sẵn trong ô để người dùng nhập nội dung cần thông báo vào.
XPos: Không bắt buộc. Là khoảng cách (đơn vị pixels) theo phương X (phương ngang) tính từ mép trái màn hình hiển thị. Nếu để trống (không nhập) giá trị này thì hộp thoại sẽ hiển thị ở giữa theo phương ngang.
YPos: Không bắt buộc. Là khoảng cách (đơn vị pixels) theo phương Y (phương đứng) tính từ mép trên màn hình hiển thị. Nếu để trống (không nhập) giá trị này thì hộp thoại sẽ hiển thị ở giữa theo phương đứng.
HelpFile: Không bắt buộc.Là chuỗi xác định tệp trợ giúp sẽ được sử dụng để cung cấp hỗ trợ giúp ngữ cảnh cho hộp thoại thông báo.
Context: Không bắt buộc. Một số để xác định số ngữ cảnh trợ giúp được ngữ cảnh trợ giúp gán cho chủ đề thích hợp. Nếu ngữ cảnh được cung cấp thì cũng phải cung cấp tài liệu trợ giúp (HelpFile).

 
Ví dụ: Chi tiết xem file đính kèm ở cuối bài.

Sub Vidu_Iputbox()
Dim inBox As String
inBox = InputBox("Chon:" & vbNewLine & "1-Yes" & vbNewLine & "2-No", "Tieu de Input Box", 1)
If inBox = "1" Or inBox = "2" Then
    MsgBox "Day la gia tri vua chon: " & inBox, , "Thong bao"
Else
    MsgBox "Chon sai!", , "Thong bao"
End If
End Sub
 
 

Tải file mẫu: MsgBox, Input

Bài viết liên quan

Viết ý kiến của bạn