VBA FileSystemObject (FSO)

FileSystemObject Excel VBA (FSO)

VBA FileSystemObject (FSO) berfungsi serupa dengan FileDialog, digunakan untuk mendapatkan akses ke fail lain dari komputer yang sedang kami jalankan. Kita juga boleh mengedit fail ini bermaksud membaca atau menulis fail tersebut. Dengan menggunakan FSO kita dapat mengakses fail, bekerja dengannya, mengubah fail dan folder. FSO adalah alat API penting yang dapat kita akses dengan VBA. Sebagai sebahagian daripada projek VBA, kita mungkin perlu mengakses beberapa folder dan fail di komputer kita untuk menyelesaikannya.

Kami dapat melakukan banyak tugas dengan menggunakan FSO seperti "untuk memeriksa apakah folder tersedia atau tidak", Buat folder atau fail baru, ganti nama folder atau fail yang ada, dapatkan daftar semua fail dalam folder dan juga nama subfolder, dan akhirnya, kita dapat menyalin fail dari satu lokasi ke lokasi lain.

Walaupun terdapat fungsi lain yang tersedia untuk berfungsi dengan folder dan fail, FSO adalah kaedah termudah untuk bekerja dengan folder dan fail dengan memastikan kod VBA kemas dan lurus.

Kita boleh mengakses 4 jenis Objek dengan FileSystemObject. Di bawah ini adalah.

  1. Pemacu: Dengan menggunakan objek ini kita dapat memeriksa sama ada pemacu yang disebutkan ada atau tidak, kita dapat memperoleh nama jalan, jenis pemacu, dan ukuran pemacu.
  2. Folder: Objek ini membolehkan kita memeriksa sama ada folder tertentu ada atau tidak. Kita boleh membuat, menghapus, mengubah, menyalin folder menggunakan objek ini.
  3. Fail: Objek ini membolehkan kita memeriksa sama ada fail tertentu ada atau tidak. Kita boleh membuat, menghapus, mengubah, menyalin fail menggunakan objek vba ini.
  4. Aliran Teks: Objek ini membolehkan kita membuat atau membaca fail teks.

Semua kaedah di atas mempunyai kaedah tersendiri untuk dikendalikan. Berdasarkan keperluan kami, kami dapat memilih kaedah setiap objek.

Bagaimana Mengaktifkan FileSystemObject?

Ia tidak mudah diakses di VBA. Oleh kerana mengakses fail dan folder adalah tugas luar excel, kita perlu mengaktifkan FileSystemObject. Untuk mengaktifkan ikuti langkah di bawah.

Langkah # 1: Pergi ke Alat> Rujukan.

Langkah # 2 - Pilih pilihan 'Microsoft Scripting Runtime'

Tatal ke bawah dan pilih pilihan 'Microsoft Scripting Runtime'. Selepas memilih pilihan, klik OK.

Sekarang kita boleh mengakses FileSystemObject (FSO) di vba.

Buat Contoh FileSystemObject

Setelah pilihan 'Microsoft Scripting Runtime' diaktifkan dari perpustakaan Objek, kita perlu membuat contoh Objek Sistem Fail (FSO) melalui pengekodan.

Untuk membuat contoh, pertama-tama nyatakan pemboleh ubah sebagai FileSystemObject.

Seperti yang kita lihat, FileSystemObject muncul dalam senarai IntelliSense di VBA. Ini tidak akan tersedia sebelum kita mengaktifkan 'Microsoft Scripting Runtime'.

Oleh kerana FSO adalah objek, kita perlu menetapkannya untuk membuat contoh baru.

Sekarang kita boleh mengakses semua pilihan FSO (FileSystemObject).

Contohnya menggunakan VBA FileSystemObject

Anda boleh memuat turun Templat VBA FileSystemObject Excel ini di sini - Templat VBA FileSystemObject Excel

Contoh # 1 - Cari Jumlah Ruang Pemacu

Kod di bawah ini akan memberikan jumlah ruang pemacu.

Kod:

 Sub FSO_Example1 () Dim MyFirstFSO Sebagai FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Buat objek pemacu baru DriveSpace = DriveName.FreeSpace ruang ini dari drive "C" DriveSpace = DriveSpace / 1073741824 'Ini akan menukar ruang kosong ke GB DriveSpace = Round (DriveSpace, 2)' Bulatkan jumlah ruang MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Pecahkan Kod.

Pertama, kami membuat contoh FSO.

 Dim MyFirstFSO Sebagai FileSystemObject Tetapkan MyFirstFSO = FileSystemObject Baru

Seterusnya, kami telah menyatakan dua pemboleh ubah.

 Dim DriveName Sebagai Drive Dim DriveSpace Sebagai Double 

Oleh kerana DriveName adalah pemboleh ubah Objek, kita perlu menetapkannya ke FSO salah satu kaedah FSO. Oleh kerana kita memerlukan ciri pemacu, kita telah menggunakan pilihan Get Drive dan menyebut nama pemacu

 Tetapkan DriveName = MyFirstFSO.GetDrive ("C:")

Sekarang untuk DriveSpace pemboleh ubah lain, kami akan menetapkan kaedah ruang bebas pemacu yang kami akses.

DriveSpace = DriveName.FreeSpace

Setakat ini, persamaan di atas dapat memberi kita ruang bebas dari pemacu "C". Oleh itu, untuk menunjukkan hasilnya dalam GB, kami telah membahagikan ruang kosong dengan 1073741824

DriveSpace = DriveSpace / 1073741824

Seterusnya, kita akan membundarkan nombor.

DriveSpace = Bulat (DriveSpace, 2)

Akhirnya, tunjukkan hasilnya di Kotak Mesej.

Kotak Mesej "Drive" & DriveName & "has" & DriveSpace & "GB"

Apabila kita menjalankan kod secara manual atau melalui tombol pintas F5, maka di kotak mesej kita akan mendapat ruang bebas dari pemacu "C".

Jadi, di komputer saya Drive C mempunyai 216.19 GB memori ruang kosong.

Contoh # 2 - Periksa Sama ada Folder Ada atau Tidak

Untuk memeriksa sama ada folder tertentu ada atau tidak menggunakan kod di bawah.

Sekiranya folder yang disebutkan tersedia, maka ia akan menunjukkan kepada kita kotak pesan sebagai "Folder yang Disebutkan Tersedia" , jika tidak, itu akan menunjukkan kotak pesan VBA sebagai "Folder yang Disebutkan Tidak Tersedia".

Kod:

 Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:\Excel Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 Sub FSO_Example3() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End If End Sub 

Run this code manually or using the F5 key, then see the result.