VBA FileDialog

Excel VBA FileDialog

Dalam VBA fieldialog adalah properti yang digunakan untuk mewakili contoh yang berbeda, dalam fieldialog ada empat jenis konstanta yang dikenal sebagai msofiledialogfilepicker yang digunakan untuk memilih file dari jalur yang diberikan, yang kedua adalah msofiledialogfolderpicker yang namanya menyarankan digunakan untuk memilih folder dan ketiga adalah msofiledialog terbuka untuk membuka file dan yang terakhir adalah msofiledialogsaveas yang digunakan untuk menyimpan file sebagai file baru.

Ada keadaan tertentu di mana kami menginginkan data dari file lain atau lembar kerja lain dan karena VBA digunakan untuk mengotomatiskan pekerjaan kami, kami dapat membuka file lain yang berbeda menggunakan VBA dan itu dilakukan dengan menggunakan Filedialog, bagian keren dari menggunakan ini Metode ini adalah kita tidak perlu menyediakan path ke kode, tetapi kita meminta pengguna untuk menelusuri file.

Sebagai bagian dari proyek VBA, kami mungkin perlu membuka buku kerja lain dan menjalankan beberapa jenis tugas dengannya. Di salah satu artikel kami sebelumnya "VBA Workbook.Open" kami telah menunjukkan cara membuka file dengan jalur tertentu dan file tertentu. Di sana, kami perlu menyediakan jalur folder dan nama file dengan ekstensinya. Tetapi bagaimana jika setiap kali pengguna harus memilih file yang berbeda dari folder yang berbeda. Di sinilah opsi "FileDialog" masuk ke dalam gambar.

Bagaimana Cara Kerja Opsi FileDialog VBA?

“Jika Anda tidak tahu jalur pastinya, FileDialog akan mencari dan memilih file tersebut untuk Anda”. Alih-alih menyebutkan alamat jalur dan nama file, kami dapat menyajikan jendela dialog terbuka file secara terpisah untuk memilih file dari folder mana pun di komputer.

Anda dapat mengunduh Template Excel FileDialog VBA ini di sini - Template Excel FileDialog VBA

"FileDialog" adalah objek di VBA. Untuk menggunakan opsi ini, pertama kita perlu mendefinisikan variabel sebagai FileDialog.

Setelah variabel dideklarasikan sebagai "FileDialog" itu adalah variabel objek. Untuk mulai menggunakan ini kita perlu mengatur objek dengan menggunakan Application.FileDialog.

Seperti yang bisa kita lihat pada gambar di atas, FileDialog memiliki empat opsi dengannya.

  • msoFileDialogFilePicker: Opsi ini membuka jendela pemilih file di depan pengguna untuk memilih file yang diinginkan sesuai keinginan mereka.
  • msoFileDialogFolderPicker: Opsi ini membuka kotak dialog atau jendela di depan pengguna untuk memilih Folder.
  • msoFileDialogOpen: Ini akan memungkinkan pengguna untuk membuka file yang dipilih dari folder.
  • msoFileDialogSaveAs: Ini akan memungkinkan pengguna untuk menyimpan file sebagai salinan yang berbeda.

Sampai sekarang, saya telah memilih opsi msoFileDialogFilePicker.

Sekarang kita perlu mendesain kotak dialog yang muncul di depan kita.

Menggunakan With Statement kita dapat mendesain kotak dialog.

Di dalam dengan pernyataan letakkan titik untuk melihat daftar IntelliSense properti dan metode opsi FileDialog.

Untuk melihat hanya file excel saat kotak dialog file terbuka, pertama-tama kita perlu menghapus filter apa pun yang diterapkan.

Sekarang kita perlu menerapkan filter baru sebagai "File Excel" dengan ekstensi wildcard dari file excel.

Sekarang mari kita ubah judul kotak dialog file.

Kami dapat mengizinkan pengguna untuk memilih hanya satu file pada satu waktu atau kami juga dapat mengizinkan mereka untuk memilih beberapa file juga. Untuk ini, kita perlu menggunakan "Allow Multi-Select".

Kami memiliki dua opsi di sini. Jika TRUE dipilih maka pengguna dapat memilih beberapa file jika FALSE pengguna hanya dapat memilih satu file pada satu waktu.

Hal lain yang dapat kita rancang dengan FileDialog adalah kita sebenarnya dapat bersikeras tentang apa yang seharusnya menjadi folder default ketika kotak dialog file muncul. Untuk ini gunakan Nama File Awal.

Untuk ini, kami perlu menyebutkan folder default untuk membuka jalur alamat.

Sekarang akhirnya kita perlu menerapkan metode "Show" untuk melihat kotak dialog file.

Kode:

Sub DoEvents_Example1 () Redupkan Myfile Sebagai FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dengan Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Pilih File Excel Anda !! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Tunjukkan Akhiri Dengan End Sub

Sekarang jalankan kode VBA untuk melihat hasilnya.

Seperti yang bisa kita lihat pada kotak dialog file gambar di atas telah membuka folder yang disebutkan secara default.

Sekarang kita dapat memilih subfolder dan memilih file excel.

Lihat gambar di atas karena kami telah menerapkan parameter filter hanya sebagai "File Excel".

Ini hanya akan memilih file dari folder yang disebutkan. Untuk menyimpan path lengkap kita perlu mendeklarasikan satu variabel lagi sebagai string.

Sekarang di dalam pernyataan with pilih "SelectedItems". Tetapkan jalur folder item yang dipilih ke variabel yang baru ditentukan.

Sekarang akhirnya tunjukkan jalur folder yang dipilih di kotak pesan VBA.

Sekarang saya akan menjalankan program untuk melihat kotak dialog.

Sekarang saya telah memilih Nama File sebagai “1. Charts.xlsx ”di subfolder“ Charts ”. Jika saya mengklik OK, kita dapat melihat path folder lengkap di kotak pesan.

Jadi, seperti ini, kita dapat menggunakan opsi FileDialog untuk memilih file dari folder di Excel. Gunakan kode di bawah ini untuk memilih file.

Kode:

Sub DoEvents_Example1 () Redupkan File Saya Sebagai FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Redupkan FileAddress Sebagai String Dengan Myfile .Filters.Clear .Filters.Add "File Excel", "* .xlsx?", 1 .Title = "Pilih Your Berkas Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: \ Excel Files". Show FileAddress = .SelectedItems (1) Akhiri Dengan MsgBox FileAddress End Sub