Hướng dẫn cách tạo nút bấm chọn thư mục trong Excel bằng VBA

Một trong những tính năng của VBA đó là cho phép người dùng thao tác với các thư mục, các file trong thư mục bên trong máy tính. Trong bài viết này chúng ta cùng tìm hiểu cách làm thế nào để có thể tạo được nút bấm mở ra cửa sổ chọn thư mục trong máy tính trên Excel.

Tìm hiểu đối tượng FileDialog trong VBA

Khi muốn làm việc với các thư mục, các file trong máy tính từ VBA, chúng ta đều cần phải thông qua đối tượng FileDialog. Cú pháp để gọi đối tượng này trong VBA như sau:

Application.FileDialog( _loại file dialog_ )

Trong đó:

Loại file dialog là loại dữ liệu MsoFileDialogType, bao gồm các nội dung sau:

  • msoFileDialogFilePicker: chức năng chọn file trong thư mục
  • msoFileDialogFolderPicker: chức năng chọn thư mục
  • msoFileDialogOpen: chức năng mở 1 file
  • msoFileDialogSaveAs: chức năng lưu 1 file dưới định dạng tùy chọn.

Đây là 4 chức năng cơ bản khi chúng ta làm việc tới đối tượng File-Folder trong VBA.

Tạo nút bấm chọn mở thư mục

Việc chọn và mở thư mục được thực hiện theo trình tự như sau:

Nội dung của code trên được hiểu là:

  • Thứ 1: Bạn cần có 1 biến để thể hiện tên file được mở (khai báo biến TenFile)
  • Thứ 2: Bạn cần làm việc với đối tượng FileDialog, cụ thể là msoFileDialogOpen
  • Thứ 3: Trong phần này bạn sẽ cần phải Show nó ra để người dùng có thể chọn file (ngoài ra có thể cho phép chọn nhiều hơn 1 file với thuộc tính AllowMultiSelect = TRUE)
  • Thứ 4: Với mỗi file được chọn (bởi có thể có nhiều hơn 1 file) bạn sẽ làm gì với nó? Trong ví dụ trên là chúng ta gán Tên file và đường dẫn file đó vào trong 1 messenger box (hộp thoại) để thông báo file nào là file được chọn.

Khi chúng ta gán Macro trên vào trong 1 biểu tượng (Shape / button) thì chúng ta chỉ việc bấm vào nút đó sẽ xuất hiện cửa sổ chọn file. Trông thật giống với các phần mềm khác mà chúng ta đã gặp phải không nào;

Vậy những thứ còn lại thì sao? Hãy mở VBA lên và thử viết lệnh tương tự câu lệnh trên là bạn sẽ biết ngay thôi. Hãy thử và kiểm chứng, đừng sợ sai hay chưa biết. Đó là cách nhanh nhất để bạn học-hiểu về VBA.

Bạn muốn đọc thêm các nội dung khác ư? Học Excel Online còn rất nhiều bài hay cho bạn đọc, hãy tìm hiểu các bài sau:

Hướng dẫn cách tự học VBA hiệu quả với chức năng record macro

Hướng dẫn 2 cách gán công thức từ VBA vào Excel

Tự động tính thành tiền khi thay đổi số lượng hoặc đơn giá trong userform VBA

Tự động tô màu vùng được chọn với sự kiện SelectionChange