Hộp thoại nhập liệu trong VBA Excel

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.

  1. Ứng dụng hộp thoại nhập liệu trong VBA Excel ?
  2. Cách sử dụng hộp thoại nhập liệu trong VBA Excel ?
  3. Video hướng dẫn code sử dụng hộp thoại nhập liệu trong VBA Excel

1. Ứng dụng hộp thoại nhập liệu trong VBA Excel ?

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.

Hộp thoại nhập liệu vba

 

 Trại huấn luyện coder

 

2. Cách sử dụng hộp thoại nhập liệu trong VBA Excel ?

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

2.1 Các hộp thoại nhập liệu có sẵn trong VBA Excel

1. InputBox

    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.

Cú pháp InputBox:

    Dim result As String
    result = InputBox("Nhập dữ liệu:", "Tiêu đề hộp thoại", "Giá trị mặc định")

Tính ứng dụng thực tế của InputBox

    Ư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.

2. Application.InputBox

    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.

    Cú pháp:

    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)
     

Tính ứng dụng thực tế của InputBox
  • Giúp khống chế được kiểu giá trị nhập vào, ví dụ yêu cầu nhập Số tiền nhưng người dùng nhập chữ thì báo cho người dùng kiểu dữ liệu nhập không đúng.
  • Nhưng thông báo mang tính chung, giao diện thông báo hoàn toán tiếng anh, khó tùy chính nên việc ứng dụng Application.InputBox rất ít.
  • Nếu tùy chỉnh giao diện thông báo theo ý của người lập trình viên thì không dùng được Application.InputBox mà phải làm hộp thoại thông báo dạng UserForm.

3. MsgBox với câu hỏi Yes/No/Cancel
Cách hoạt động của MsgBox   

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.

  • vbYes trả về 6
  • vbNo trả về 7
  • vbCancel trả về 2
  • vbOK trả về 1
  • vbAbort trả về 3
  • vbRetry trả về 4
  • vbIgnore trả về 5
 
Cú pháp MsgBox

    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.

 

2.2 Thiết kế UserForm nhập liệu trong VBA Excel

    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.

3. Video hướng dẫn code sử dụng hộp thoại nhập liệu trong VBA Excel

[Xem video tạo hộp thoại vba]

 

Tải file excel

Tìm kiếm: inputbox;application.inputbox;msgbox voi cau hoi yes/no/cancel;

Bài viết liên quan:

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.