Bài viết: Khi nào nên sử dụng Msgbox, Inputbox và Userform?

Liên hệ QC

kyo

Nguyễn Khắc Duy
Thành viên danh dự
Tham gia
4/6/06
Bài viết
901
Được thích
2,715
Khi nào nên sử dụng Msgbox, Inputbox và Userform?


Một trong những lỗi phổ biến nhất trong quá trình sử dụng VBA là sử dụng sai những công cụ tương tác mà VBA hỗ trợ, bao gồm Msgbox, Inputbox và Userform. Dân gian ta thường có câu: "Không cần lấy dao mổ trâu để giết gà", đôi khi, đối với những bảng thông báo đơn giản, chúng ta không cần thiết phải sử dụng cả một Userform hoành tráng. Sẽ có nhiều người nghĩ rằng cần phải thiết kế Userform để tạo sự thân thiện với người dùng, tuy nhiên, đôi khi, cũng chính từ đó mà bạn sẽ gặp vô vàn lỗi vì thiếu kinh nghiệm cũng như không có đủ kiến thức bẫy lỗi cần thiết.

Vậy thì, trường hợp nào thì sử dụng Msgbox, Inputbox và Userform?

Với Msgbox:

36126999814_aa1a5262cd_o.png


Trường hợp nên sử dụng:
- Khi bạn có một thông điệp ngắn cần được truyền tải, hoặc một thông tin hay cảnh báo muốn gửi đến cho người dùng.
- Nó cũng có thể là một sự lựa chọn Yes/No. Bạn có thể hỏi một câu và cho người dùng lựa chọn đồng ý hoặc không để macro sau đó có thể được thực hiện.

Trường hợp không nên dùng:
- Đối với một thông điệp dài, đừng sử dụng Msgbox.

Với Inputbox:

36790714512_cf9c6c1c8d_o.png


Trường hợp nên sử dụng:
- Khi bạn muốn người dùng nhập vào một thông tin đơn giản, ví dụ như tuổi tác, nghề nghiệp, giới tính,… Hãy bảo đảm rằng câu trả lời là ngắn gọn, đơn giản và không yêu cầu những đáp án khác ngoài chữ hoặc số.

Trường hợp không nên dùng:
- Một quyết định Yes/No hoặc True/False hay bất kỳ những trường hợp tương tự. Hoặc là một trường hợp lựa chọn giữa 1 trong hai thiết lập. Hãy để việc này cho Msgbox.
- Không nên bắt người dùng lựa chọn trong một danh sách xổ xuống, hãy để điều đó cho Userform.

Với Userform:

36126999724_2b7432708f_b.jpg


Trường hợp nên sử dụng:
- Những đầu vào phức tạp cần sự tương tác của người dùng như đính kèm một bức ảnh, lựa chọn từ một danh sách xổ xuống, chọn hai lựa chọn cùng một lúc,… Đó là những cái mà Msgbox hay Inputbox không thể làm được.

Trường hợp không nên dùng:
- Những câu trả lời đơn giản nên dành cho Inputbox. Tại sao bạn phải tốn công xây dựng một Userform khi Inputbox có thể làm tốt điều đó?
- Những lựa chọn Yes/No đơn giản nên dành cho Msgbox. Tại sao bạn phải dùng Userform thay cho Msgbox?

Tóm lại, bạn có thể hình dung câu chuyện với sơ đồ dưới đây:

36790714402_53c5ca47ae_b.jpg


Chúc bạn vui với bài viết này.

Một số bài viết có liên quan:
1/ Kích hoạt macro từ nút bấm ngoài bảng tính
2/ Làm thế nào để thay thế các chữ OK, CANCEL,... nhàm chán của Msgbox
3/ Dùng Macro 4 để tạo menu
4/ Giới thiệu VBA trong Excel
5/ Viết code để nhìn thấy ai là người cập nhật bảng tính của bạn lần gần đây nhất
6/ 4 cách sử dụng Immediate Window trong VBA hiệu quả hơn
7/ 3 gợi ý nhỏ mang lại thành công trong khai báo biến trong VBA
8/ Tạm dừng VBA bằng cách sử dụng Wait, Sleep hoặc Vòng lặp
9/ Hiểu biết thêm về phương thức Evaluate - Understanding Evaluate Method
10/ Tham số hình thức và tham số thực sự
 
Lần chỉnh sửa cuối:
Upvote 0
Bác cho em hỏi là em viết 1 đoạn macro có chứa userform.để userform sử dụng được biến của macro thì làm ntn ạ ?
 
đưa biến đó vào module.
 
Web KT
Back
Top Bottom