VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) bekerja mirip dengan FileDialog, digunakan untuk mendapatkan akses ke file lain dari komputer yang sedang kita kerjakan. Kita juga bisa mengedit file ini artinya membaca atau menulis file tersebut. Menggunakan FSO kita dapat mengakses file, bekerja dengannya, memodifikasi file dan folder. FSO adalah alat API penting yang dapat kita akses dengan VBA. Sebagai bagian dari proyek VBA, kami mungkin perlu mengakses beberapa folder dan file di komputer kami untuk menyelesaikan pekerjaan.

Kita dapat melakukan banyak tugas dengan menggunakan FSO seperti "untuk memeriksa apakah folder tersebut tersedia atau tidak", Membuat folder atau file baru, mengganti nama folder atau file yang ada, mendapatkan daftar semua file di folder dan juga nama subfolder, dan akhirnya, kami dapat menyalin file dari satu lokasi ke lokasi lain.

Meskipun ada fungsi lain yang tersedia untuk bekerja dengan folder dan file, FSO adalah metode termudah untuk bekerja dengan folder dan file dengan menjaga kode VBA tetap rapi dan lurus.

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

  1. Drive: Dengan menggunakan objek ini kita dapat memeriksa apakah drive tersebut ada atau tidak, kita bisa mendapatkan nama path, jenis drive, dan ukuran drive.
  2. Folder: Objek ini memungkinkan kita untuk memeriksa apakah folder tertentu ada atau tidak. Kita dapat membuat, menghapus, memodifikasi, menyalin folder menggunakan objek ini.
  3. File: Objek ini memungkinkan kita untuk memeriksa apakah file tertentu ada atau tidak. Kita dapat membuat, menghapus, memodifikasi, menyalin file menggunakan objek vba ini.
  4. Text Stream: Objek ini memungkinkan kita untuk membuat atau membaca file teks.

Semua metode di atas memiliki metode mereka sendiri untuk bekerja. Berdasarkan kebutuhan kami, kami dapat memilih metode setiap objek.

Bagaimana cara mengaktifkan FileSystemObject?

Itu tidak mudah diakses di VBA. Karena mengakses file dan folder adalah tugas luar excel, kita perlu mengaktifkan FileSystemObject. Untuk mengaktifkan ikuti langkah-langkah di bawah ini.

Langkah # 1: Buka Alat> Referensi.

Langkah # 2 - Pilih opsi 'Microsoft Scripting Runtime'

Gulir ke bawah dan pilih opsi 'Microsoft Scripting Runtime'. Setelah memilih opsi, klik OK.

Sekarang kita dapat mengakses FileSystemObject (FSO) di vba.

Buat Instance dari FileSystemObject

Setelah opsi 'Microsoft Scripting Runtime' diaktifkan dari perpustakaan Objek, kita perlu membuat instance Objek Sistem File (FSO) melalui pengkodean.

Untuk membuat instance, pertama-tama deklarasikan variabel sebagai FileSystemObject.

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

Karena FSO adalah objek, kita perlu mengaturnya untuk membuat instance baru.

Sekarang kita dapat mengakses semua opsi FSO (FileSystemObject).

Contoh untuk menggunakan VBA FileSystemObject

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

Contoh # 1 - Temukan Total Ruang Drive

Kode di bawah ini akan memberikan total ruang drive.

Kode:

 Sub FSO_Example1 () Redupkan MyFirstFSO Sebagai FileSystemObject Set MyFirstFSO = New FileSystemObject Redupkan Nama Drive Sebagai Drive Redupkan DriveSpace Sebagai Set Ganda DriveName = MyFirstFSO.GetDrive ("C:") 'Buat objek drive baru DriveSpace = DriveName.FreeSpace' Ini akan mendapatkan ruang kosong dari drive "C" DriveSpace = DriveSpace / 1073741824 'Ini akan mengubah ruang kosong menjadi GB DriveSpace = Round (DriveSpace, 2)' Bulatkan total ruang MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Break Down of the Code.

Pertama, kami membuat instance FSO.

 Redupkan MyFirstFSO Sebagai FileSystemObject Set MyFirstFSO = New FileSystemObject

Selanjutnya, kami telah mendeklarasikan dua variabel.

 Redupkan DriveName Sebagai Drive Redupkan DriveSpace Sebagai Double 

Karena DriveName adalah variabel Objek, kita perlu mengatur ini ke FSO salah satu metode FSO. Karena kita membutuhkan karakteristik drive, kita telah menggunakan opsi Get Drive dan menyebutkan nama drive

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

Sekarang untuk DriveSpace variabel lain, kami akan menetapkan metode ruang kosong dari drive yang kami akses.

DriveSpace = DriveName.FreeSpace

Sampai sekarang, persamaan di atas dapat memberi kita ruang kosong pada drive “C”. Jadi untuk menunjukkan hasil dalam GB kami telah membagi ruang kosong dengan 1073741824

DriveSpace = DriveSpace / 1073741824

Selanjutnya, kita akan membulatkan angkanya.

DriveSpace = Bulat (DriveSpace, 2)

Terakhir, tunjukkan hasilnya di Kotak Pesan.

MsgBox "Drive" & DriveName & "memiliki" & DriveSpace & "GB"

Ketika kita menjalankan kode secara manual atau melalui tombol shortcut F5, maka di kotak pesan kita akan mendapatkan ruang kosong dari drive “C”.

Jadi, di komputer saya Drive C memiliki memori ruang kosong sebesar 216,19 GB.

Contoh # 2 - Periksa Apakah Folder Ada atau Tidak

Untuk memeriksa apakah folder tertentu ada atau tidak gunakan kode di bawah ini.

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

Kode:

 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.