VBA UserForm: Tạo Giao Diện Nhập Liệu Chuyên Nghiệp Trong Excel
Chia sẻ
"Hướng dẫn tạo UserForm VBA từ cơ bản đến nâng cao — thiết kế form nhập liệu, xử lý sự kiện, validate dữ liệu và lưu vào bảng tính tự động."
1. UserForm Là Gì?
UserForm là một cửa sổ dialog tuỳ chỉnh trong VBA, cho phép bạn tạo giao diện nhập liệu đồ hoạ thay vì dùng InputBox hay MsgBox đơn giản. UserForm giúp:
Tạo form nhập liệu chuyên nghiệp với TextBox, ComboBox, CheckBox, OptionButton...
Kiểm tra (validate) dữ liệu trước khi ghi vào bảng tính
Giảm sai sót khi nhập liệu thủ công
Tăng trải nghiệm người dùng với giao diện thân thiện
2. Tạo UserForm Đầu Tiên
2.1. Bước 1: Mở VBA Editor
Nhấn Alt + F11 để mở VBA Editor. Sau đó vào menu Insert → UserForm.
2.2. Bước 2: Thêm Controls
Từ Toolbox, kéo thả các controls vào form:
Control | Mô tả | Ví dụ dùng |
|---|---|---|
Label | Nhãn hiển thị text | Tiêu đề, hướng dẫn |
TextBox | Ô nhập text | Tên, số điện thoại |
ComboBox | Dropdown chọn giá trị | Phòng ban, chức vụ |
CheckBox | Tích chọn Yes/No | Đồng ý điều khoản |
CommandButton | Nút bấm | Lưu, Huỷ, Xoá |
2.3. Bước 3: Đặt tên Controls
Quy tắc đặt tên tốt: dùng tiền tố prefix + tên mô tả. Ví dụ:
txtHoTen— TextBox nhập họ têncboPhongBan— ComboBox chọn phòng banbtnLuu— CommandButton lưu dữ liệu
3. Xử Lý Sự Kiện (Event Handling)
3.1. Sự kiện Click nút Lưu
Private Sub btnLuu_Click()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Data")
' Tìm dòng trống cuối cùng
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
' Ghi dữ liệu từ form vào sheet
ws.Cells(lastRow, 1).Value = txtHoTen.Value
ws.Cells(lastRow, 2).Value = txtEmail.Value
ws.Cells(lastRow, 3).Value = cboPhongBan.Value
ws.Cells(lastRow, 4).Value = Now()
' Thông báo thành công
MsgBox "Đã lưu thành công!", vbInformation
' Xoá form để nhập tiếp
Call ClearForm
End Sub3.2. Khởi tạo Form (Initialize)
Private Sub UserForm_Initialize()
' Đổ dữ liệu vào ComboBox
With cboPhongBan
.AddItem "Kế toán"
.AddItem "Nhân sự"
.AddItem "Kinh doanh"
.AddItem "IT"
.AddItem "Sản xuất"
End With
' Set giá trị mặc định
txtHoTen.SetFocus
End Sub4. Validate Dữ Liệu
Trước khi lưu, luôn kiểm tra dữ liệu hợp lệ:
Private Function ValidateForm() As Boolean
ValidateForm = True
' Kiểm tra họ tên không được trống
If Trim(txtHoTen.Value) = "" Then
MsgBox "Vui lòng nhập họ tên!", vbExclamation
txtHoTen.SetFocus
ValidateForm = False
Exit Function
End If
' Kiểm tra email có @
If InStr(txtEmail.Value, "@") = 0 Then
MsgBox "Email không hợp lệ!", vbExclamation
txtEmail.SetFocus
ValidateForm = False
Exit Function
End If
' Kiểm tra phòng ban đã chọn chưa
If cboPhongBan.ListIndex = -1 Then
MsgBox "Vui lòng chọn phòng ban!", vbExclamation
cboPhongBan.SetFocus
ValidateForm = False
Exit Function
End If
End Function5. Mẹo Thiết Kế Form Đẹp
Canh lề đều: Dùng Format → Align để căn chỉnh controls
Màu sắc nhất quán: Dùng BackColor của Form, đổi font cho Label
Tab Order: Thiết lập thứ tự Tab đúng logic (View → Tab Order)
Phím tắt: Gán Accelerator cho Label để user dùng Alt + phím
6. Gọi UserForm Từ Nút Trên Sheet
Sub MoFormNhapLieu()
frmNhapLieu.Show
End SubGán macro này vào một nút (Insert → Button) trên sheet để người dùng click mở form dễ dàng.
7. Kết Luận
UserForm là công cụ mạnh mẽ giúp biến file Excel thành một ứng dụng nhập liệu mini. Kết hợp với validate dữ liệu và xử lý sự kiện, bạn có thể tạo các form chuyên nghiệp mà không cần phần mềm bên ngoài.
📌 Lưu ý: File demo .xlsm download từ mạng cần bỏ chặn macro trước khi sử dụng. Xem hướng dẫn chi tiết: Cách Bỏ Chặn Macro Excel.
Mục lục
- 1. UserForm Là Gì?
- 2. Tạo UserForm Đầu Tiên
- 2.1. Bước 1: Mở VBA Editor
- 2.2. Bước 2: Thêm Controls
- 2.3. Bước 3: Đặt tên Controls
- 3. Xử Lý Sự Kiện (Event Handling)
- 3.1. Sự kiện Click nút Lưu
- 3.2. Khởi tạo Form (Initialize)
- 4. Validate Dữ Liệu
- 5. Mẹo Thiết Kế Form Đẹp
- 6. Gọi UserForm Từ Nút Trên Sheet
- 7. Kết Luận
Muốn làm chủ VBA?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.
Bài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
VBA Cơ Bản Cho Người Mới Bắt Đầu: Tự Động Hoá Excel Từ Con Số 0
Hướng dẫn VBA Excel từ A-Z cho người mới: bật Developer Tab, Macro Recorder, viết code Sub, biến, If/Else, vòng lặp, Range/Cells, và ví dụ format báo cáo tự động. Kèm file demo .xlsm.

Tự Động Hóa Báo Cáo Excel: VBA + Power Query + Email Tự Gửi Hàng Tuần
Xây dựng hệ thống báo cáo tự động hoàn chỉnh: Power Query refresh dữ liệu, VBA format và tạo PDF, Outlook gửi email tự động. Kèm Task Scheduler chạy hàng tuần không cần mở Excel.
Bỏ Chặn Macro Excel: Hướng Dẫn Bật Macro Cho File Download Từ Mạng
Hướng dẫn 4 cách bỏ chặn macro trong file Excel .xlsm download từ mạng: Properties Unblock, Enable Content, Trust Center, và PowerShell.
