Một ví dụ đơn giản, khi người sử dụng phần mềm click vào nút xóa, thì phần mềm phải hỏi lại người dụng là có chắc chắn hay không ?
Đây là một ứng dụng đơn giản nhất của hộp thoại nhập liệu.
Có 2 cách sử dụng là sử dụng hàm có sẵn từ VBA hay là tự viết 1 form thu thập dữ liệu
Dùng để yêu cầu người dùng nhập giá trị, kiểu như thích nhập gì thì nhập.
Dim result As String
result = InputBox("Nhập dữ liệu:", "Tiêu đề hộp thoại", "Giá trị mặc định")
Ưu điểm: Dễ sử dụng, không quan tấm đến kiểu nhập vào là gì, kiểu gì nhập vào cũng nhận, phù hợp với nhập liệu kiểu đơn giản.
Nhược điểm: Giao diện đơn giản, không thể tùy chỉnh lại được giao diện.
Nằm trong thư viện Application của window, hỗ trợ mạnh hơn InputBox, cho phép xác định kiểu dữ liệu đầu vào (chuỗi, số, ô, phạm vi, v.v.), nếu người dùng nhập sai kiểu sẽ thông báo.
Dim result As Variant
result = Application.InputBox("Nhap gia tri:", "Tieu de", Type:=1)
Type:
0 = Mọi loại dữ liệu (kiểu Variant)
1 = Số
2 = Chuỗi
8 = Phạm vi (Range)
Không trực tiếp nhập dữ liệu như InputBox mà người dùng xác nhận hành động qua các nút lệnh.
Dim result As Integer
result = MsgBox("Ban muon tiep tuc ?", vbYesNoCancel + vbQuestion, "Xac nhan")
Select Case result
Case vbYes
MsgBox "Bạn chọn Yes"
Case vbNo
MsgBox "Bạn chọn No"
Case vbCancel
MsgBox "Bạn chọn Cancel"
End Select
// Nếu bạn in giá trị biến result sẽ thấy được con số trả về
Bạn cũng có thể code lại theo cách
Select Case result
Case 6
MsgBox "Bạn chọn Yes"
Case 7
MsgBox "Bạn chọn No"
Case 2
MsgBox "Bạn chọn Cancel"
End Select
Ưu điểm: Hữu ích khi cần xác nhận hoặc điều hướng hành động.
Nhược điểm: Không hỗ trợ nhập liệu phức tạp.
Nếu các hộp thoại tùy có sẵn không hỗ trợ được nghiệp vụ của bạn, hãy thiết kế 1 form riêng, sử dụng thêm các controlsc như textbox, combobox, button, v.v.
Các bước thực hiện:
Vào VBA Editor → Insert → UserForm.
Thêm các điều khiển (Textbox, Label, Button).
Viết mã cho các sự kiện như CommandButton_Click.
Private Sub CommandButton1_Click()
Dim inputData As String
inputData = TextBox1.Text
MsgBox "Bạn đã nhập: " & inputData
End Sub
Ưu điểm: Xử lý được nghiệp vụ riêng
Nhược điểm: Bạn cần phải code xịn về vba excel.
Tìm kiếm: inputbox;application.inputbox;msgbox voi cau hoi yes/no/cancel;
Chức năng chính của hộp thoại nhập liệu trong VBA Excel là thu thập dữ liệu từ người sử dụng phần mềm.