Hướng dẫn cách đóng hoàn toàn Userform trong VBA Excel

Sử dụng Userform để nhập dữ liệu trong Excel giúp ích rất nhiều trong công việc, biến file excel thông thường trở thành 1 phần mềm chuyên nghiệp. Tuy nhiên để quản lý tốt Userform trong VBA lại đòi hỏi bạn phải rất tỉ mỉ và cẩn thận. Câu hỏi đặt ra là có những cách nào để đóng Userform? Khi nào thì Userform thực sự được đóng lại? Trong bài viết này Học Excel Online sẽ hướng dẫn các bạn cách đóng hoàn toàn Userform trong VBA.

Để có thể tìm hiểu bài viết này được tốt hơn thì các bạn có thể tải về mẫu file excel tại địa chỉ: http://bit.ly/2JvRFE5

Trong file này chúng ta có 1 Userform như sau:

Để có thể gọi ra Userform này, các bạn tìm hiểu trong bài viết:

Hướng dẫn cách gọi ra một Userform và gán lệnh gọi Userform trong VBA Excel

Sau đây chúng ta tìm hiểu cụ thể về các dạng đóng Userform:

1. Ẩn Userform

Đúng như tên gọi, đây chỉ đơn thuần là thao tác “Ẩn” chứ không phải là “Đóng”. Tuy nhiên hiệu ứng về thị giác thì giống nhau: Đó là chúng ta không nhìn thấy Userform nữa. Việc này khiến nhiều người hiểu nhầm rằng “Ẩn” cũng là “Đóng”. Nhưng về bản chất thì việc Ẩn vẫn là Userform đang được mở, chỉ không nhìn thấy mà thôi. Excel vấn tốn bộ nhớ để theo dõi việc này.

Câu lệnh ẩn Userform như sau:

Sub An_Userform01()

UserForm1.Hide

End Sub

Do đó để đóng hoàn toàn 1 Userform thì chúng ta sẽ không sử dụng lệnh Ẩn

2. Đóng Userform bằng nút x (close) mặc định của VBA

Bất kỳ 1 Userform nào cũng có nút đóng mặc định tại vị trí nút x như hình dưới đây:

Tuy nhiên việc đóng Userform bằng nút này lại gây ra những nhược điểm:

  • Người dùng đột ngột thoát khỏi Form khiến quy trình xử lý của Userform bị gián đoạn, gây lỗi
  • Không kiểm soát được việc người dùng không sử dụng form trong một số tình huống bắt buộc phải dùng Userform (ví dụ như userform đăng nhập bằng tài khoản thì phải quản lý được khi nào người sử dụng muốn thoát.

Do đó việc sử dụng nút x để đóng userform cũng cần hết sức lưu ý.

Xem thêm: Hướng dẫn cách vô hiệu hóa nút x close của userform VBA Excel

3. Đóng userform bằng câu lệnh Unload Me

Việc sử dụng câu lệnh đóng Userform sẽ giúp chúng ta xác định được chính xác khi nào thì người dùng thực sự muốn đóng Userform. Do đó đây là cách thường được áp dụng nhất.

Cách sử dụng rất đơn giản: chỉ cần sử dụng câu lệnh “Unload Me” trong khi viết code trong Userform. Trong đó đối tượng Me được hiểu chính là Userform đang làm việc.

Ví dụ:

a. Đóng Userform bằng cách bấm vào Command Button Cancel (cmbCancel)

Private Sub cmbCancel_Click()

Unload Me

End Sub

b. Đóng Userform sau khi hoàn tất thủ tục của Command Button OK (cmbOK)

Private Sub cmbOK_Click()

Range(“A1”).Value = “Hoc Excel Online”

Unload Me

End Sub

Các bạn có thể tải về file mẫu tại địa chỉ: http://bit.ly/2JGnmJR

Để tìm hiểu thêm nhiều kiến thức về VBA, mời bạn tham dự khóa học VBA101 – Tự động hóa Excel với lập trình VBA. Đây là khóa học rất hữu ích dành cho bạn, giúp bạn hiểu một cách bài bản về VBA và cách sử dụng VBA, ứng dụng VBA vào công việc để tăng hiệu quả. Hãy cùng khám phá nào: