VBA cho phép người dùng thao tác với thư mục và tệp tin trên máy tính. Bài viết này hướng dẫn cách tạo nút bấm mở cửa sổ chọn thư mục trong Excel.
Đối Tượng FileDialog Trong VBA
Để làm việc với thư mục và tệp tin từ VBA, chúng ta cần sử dụng đối tượng FileDialog
. Cú pháp:
Application.FileDialog(_loại file dialog_)
_loại file dialog_
là kiểu dữ liệu MsoFileDialogType
, bao gồm:
msoFileDialogFilePicker
: Chọn tệp tin.msoFileDialogFolderPicker
: Chọn thư mục.msoFileDialogOpen
: Mở một tệp tin.msoFileDialogSaveAs
: Lưu tệp tin dưới định dạng tùy chọn.
Đây là 4 chức năng cơ bản khi làm việc với tệp tin và thư mục trong VBA.
Các loại msoFileDialogType trong VBA
Tạo Nút Bấm Chọn Thư Mục
Ví Dụ Mở Tệp Tin
Đoạn code sau minh họa cách mở tệp tin:
Sub MoFile()
Dim TenFile As Variant
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True 'Cho phép chọn nhiều tệp
If .Show = -1 Then
For Each TenFile In .SelectedItems
MsgBox TenFile
Next TenFile
End If
End With
End Sub
Giải thích:
- Khai báo biến
TenFile
để lưu tên tệp tin. - Sử dụng
Application.FileDialog(msoFileDialogOpen)
để mở hộp thoại chọn tệp. .Show
hiển thị hộp thoại.AllowMultiSelect = True
cho phép chọn nhiều tệp.- Vòng lặp
For Each
duyệt qua từng tệp tin được chọn (SelectedItems
) và hiển thị tên tệp trong hộp thoại (MsgBox
).
Gán macro này cho một nút bấm (Shape/Button). Khi bấm nút, cửa sổ chọn tệp sẽ hiện ra.
Ví dụ mở tệp tin bằng VBA
Tạo Nút Chọn Thư Mục
Tương tự, để chọn thư mục, ta sử dụng msoFileDialogFolderPicker
:
Sub ChonThuMuc()
Dim ThuMuc As Variant
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
ThuMuc = .SelectedItems(1)
MsgBox "Thư mục được chọn: " & ThuMuc
End If
End With
End Sub
Code này hiển thị hộp thoại chọn thư mục và hiển thị đường dẫn thư mục được chọn.
Kết Luận
Bài viết đã hướng dẫn cách tạo nút bấm chọn thư mục trong Excel bằng VBA. Việc sử dụng FileDialog
giúp thao tác với tệp tin và thư mục trở nên dễ dàng hơn. Hãy thử nghiệm và khám phá thêm các tính năng khác của VBA để nâng cao hiệu quả làm việc với Excel. Bạn có thể tìm hiểu thêm về VBA qua các bài viết 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
Discussion about this post