1. InputBox là gì?
InputBox là hộp thoại cho phép người dùng nhập dữ liệu vào trong VBA.
👉 Khác với MsgBox:
MsgBox → chỉ hiển thị
InputBox → nhập + trả về giá trị
2. Cú pháp cơ bản
InputBox(prompt, [ title], [default])
Trong đó:
prompt: nội dung yêu cầu nhập
title: tiêu đề hộp thoại
default: giá trị mặc định
3. Ví dụ đơn giản
Sub TestInput()
Dim name As String
name = InputBox("Nhap ten cua ban:")
MsgBox "Xin chao " & name
End Sub



4. Có tiêu đề + giá trị mặc định
Sub InputWithDefault()
Dim city As String
city = InputBox("Nhap thanh pho:", "Thong tin", "Ha Noi")
MsgBox "Ban o " & city
End Sub




5. Input số
Sub InputNumber()
Dim age As Integer
age = InputBox("Nhap tuoi:")
MsgBox "Tuoi cua ban la " & age
End Sub
⚠️ Lưu ý:
InputBox luôn trả về String
VBA sẽ tự ép kiểu → có thể lỗi nếu nhập chữ



6. Kiểm tra dữ liệu nhập
Sub ValidateInput()
Dim age As Variant
age = InputBox("Nhap tuoi:")
If Not IsNumeric(age) Then
MsgBox "Vui long nhap so!", vbExclamation
Exit Sub
End If
MsgBox "Tuoi hop le: " & age
End Sub





7. Xử lý khi người dùng bấm Cancel
Sub HandleCancel()
Dim value As String
value = InputBox("Nhap gi do:")
If value = "" Then
MsgBox "Ban da huy hoac khong nhap!"
Exit Sub
End If
MsgBox "Ban nhap: " & value
End Sub
👉 Giải thích:
Khi người dùng bấm Cancel → InputBox trả về chuỗi rỗng “”
Vì vậy cần kiểm tra value = “” để tránh lỗi xử lý phía sau
8. Ví dụ thực tế trong Excel
Nhập dữ liệu vào ô
Sub InputToCell()
Dim product As String
product = InputBox("Nhap ten san pham:")
If product <> "" Then
Range("A1").Value = product
End If
End Sub
Nhập số và tính toán
Sub CalculateSum()
Dim a As Double
Dim b As Double
a = InputBox("Nhap so A:")
b = InputBox("Nhap so B:")
MsgBox "Tong la: " & (a + b)
End Sub
9. InputBox nâng cao (Application.InputBox)
👉 Dùng khi cần chọn vùng (Range)
Sub SelectRange()
Dim rng As Range
Set rng = Application.InputBox("Chon vung:", Type:=8)
rng.Interior.Color = vbYellow
End Sub
Type quan trọng:
| Type | Ý nghĩa |
|---|---|
| 1 | Số |
| 2 | Chuỗi |
| 8 | Range (QUAN TRỌNG) |
10. So sánh nhanh
| Loại | Dùng khi |
|---|---|
InputBox |
Nhập đơn giản |
Application.InputBox |
Nhập nâng cao (Range, kiểu dữ liệu) |


VBA – Message Box (MsgBox)31-03-2026 15:01
Cách viết comment (chú thích) trong VBA31-03-2026 13:46