VBA FileSystemObject (FSO) - Bagaimana Mengakses FileSystemObject?

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 . 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 menjaga kod VBA kemas dan lurus.

Kita boleh mengakses empat 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 tujuan, dan ukuran perusahaan.
  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 kami 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 kaedahnya untuk digunakan. 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 memberi galakan, 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'. Setelah 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 Objek Sistem Fail (FSO) melalui pengekodan.

Untuk membuat contoh, nyatakan dahulu 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 dapat mengakses semua pilihan FSO (FileSystemObject).

Contohnya menggunakan VBA FileSystemObject

Contoh # 1 - Cari Jumlah Ruang Pemacu

Kod di bawah 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 drive, kita telah menggunakan pilihan Get Drive dan menyebut nama drive.

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

Untuk pemboleh ubah lain, DriveSpace, 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 terbuka dengan 1073741824

DriveSpace = DriveSpace / 1073741824

Seterusnya, kami akan membundarkan nombor.

DriveSpace = Bulat (DriveSpace, 2)

Akhirnya, tunjukkan hasilnya di Kotak Mesej.

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

When we run the code manually or through shortcut key F5, then in the message box, we will get the free space of the drive “C.”

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 - Check Whether the Folder Exists or Not

To check whether the particular folder exists or not, use the below code.

If the mentioned folder is available, it will show us the message box as “The Mentioned Folder is Available.” If not, it will show the VBA message box as “The Mentioned Folder is Not Available.”

Code:

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

Jalankan kod ini melalui kekunci pintas excel F5 atau secara manual, kemudian lihat hasilnya.

Contoh # 3 - Periksa Sama ada Fail Ada atau Tidak

Kod di bawah akan memeriksa sama ada fail yang disebutkan ada atau tidak.

Kod:

Sub FSO_Example3 () Dim MyFirstFSO Sebagai FileSystemObject Set MyFirstFSO = New FileSystemObject if MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Kemudian MsgBox "File yang DisebutBersedia" Lain-lain Fail Tidak Terdapat "End If End Sub

Jalankan kod ini secara manual atau gunakan kekunci F5, kemudian lihat hasilnya.

Artikel menarik...