VBA FileSystemObject (FSO) | FileSystemObject'e Nasıl Erişilir?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) , üzerinde çalıştığımız bilgisayarın diğer dosyalarına erişim sağlamak için kullanılan FileDialog'a benzer şekilde çalışır. Ayrıca bu dosyaları düzenleyebiliriz, yani dosyayı okuyabilir veya yazabiliriz. FSO'yu kullanarak dosyalara erişebilir, onlarla çalışabilir, dosya ve klasörleri değiştirebiliriz. FSO, VBA ile erişebileceğimiz önemli API aracıdır. VBA projesinin bir parçası olarak, işi bitirmek için bilgisayarımızdaki birkaç klasöre ve dosyaya erişmemiz gerekebilir.

FSO kullanarak "klasörün mevcut olup olmadığını kontrol etmek", Yeni klasör veya dosyalar oluşturmak, mevcut klasör veya dosyaları yeniden adlandırmak, klasördeki tüm dosyaların listesini ve ayrıca alt klasör adlarını almak gibi birçok görevi gerçekleştirebiliriz ve son olarak, dosyaları bir konumdan diğerine kopyalayabiliriz.

Klasörler ve dosyalarla çalışmak için kullanılabilen başka işlevler olsa bile FSO, VBA kodunu düzgün ve düzgün tutarak klasörler ve dosyalarla çalışmanın en kolay yöntemidir.

FileSystemObject ile 4 tür Nesneye erişebiliriz. Aşağıdakiler.

  1. Sürücü: Bu nesneyi kullanarak söz konusu sürücünün var olup olmadığını kontrol edebilir, yol adını, sürücünün türünü ve sürücünün boyutunu alabiliriz.
  2. Klasör: Bu nesne, belirli bir klasörün var olup olmadığını kontrol etmemizi sağlar. Bu nesneyi kullanarak klasörler oluşturabilir, silebilir, değiştirebilir, kopyalayabiliriz.
  3. Dosya: Bu nesne, belirli bir dosyanın var olup olmadığını kontrol etmemizi sağlar. Bu vba nesnesini kullanarak dosya oluşturabilir, silebilir, değiştirebilir, kopyalayabiliriz.
  4. Metin Akışı: Bu nesne, metin dosyaları oluşturmamıza veya okumamıza izin verir.

Yukarıdaki tüm yöntemlerin üzerinde çalışmak için kendi yöntemleri vardır. İhtiyaçlarımıza göre her nesnenin yöntemini seçebiliriz.

FileSystemObject Nasıl Etkinleştirilir?

VBA'da hemen erişilebilir değildir. Dosya ve klasörlere erişim excel'in dış görevi olduğundan, FileSystemObject'i etkinleştirmemiz gerekir. Etkinleştirmek için aşağıdaki adımları izleyin.

Adım # 1: Araçlar> Referanslar'a gidin.

Adım # 2 - 'Microsoft Scripting Runtime' seçeneğini seçin

Aşağı kaydırın ve 'Microsoft Scripting Runtime' seçeneğini seçin. Seçenekleri seçtikten sonra Tamam'a tıklayın.

Artık vba'da FileSystemObject'e (FSO) erişebiliriz.

FileSystemObject Örneğini Oluşturun

'Microsoft Scripting Runtime' seçeneği Objects kitaplığından etkinleştirildiğinde, kodlama yoluyla File System Object (FSO) örneğini oluşturmamız gerekir.

Örneği oluşturmak için önce değişkeni FileSystemObject olarak bildirin.

Gördüğümüz gibi FileSystemObject , VBA'daki IntelliSense listesinde görünüyor. Biz 'Microsoft Scripting Runtime'ı etkinleştirmeden önce bu mevcut olmazdı.

FSO bir nesne olduğu için onu yeni bir örnek oluşturacak şekilde ayarlamamız gerekir.

Artık FSO'nun (FileSystemObject) tüm seçeneklerine erişebiliriz.

VBA FileSystemObject kullanma örnekleri

Bu VBA FileSystemObject Excel Şablonunu buradan indirebilirsiniz - VBA FileSystemObject Excel Şablonu

Örnek 1 - Toplam Sürücü Alanını Bulun

Aşağıdaki kod, sürücünün toplam alanını verecektir.

Kod:

 Alt FSO_Example1 () Dim MyFirstFSO FileSystemObject Olarak Ayarla MyFirstFSO = Yeni FileSystemObject Sürücü Adını Sürücü Olarak Ayarla Sürücü Alanını Çift Olarak Ayarla SürücüAdı = MyFirstFSO.GetDrive ("C:") 'Yeni sürücü nesnesi oluştur DriveSpace = SürücüAdı.FreeSpace' Bu boş alanı alacak "C" sürücüsünün "DriveSpace = DriveSpace / 1073741824 'Bu, boş alanı GB'ye dönüştürür DriveSpace = Round (DriveSpace, 2)' Toplam alanı yuvarlayın MsgBox" Drive "& DriveName &" has "& DriveSpace &" GB "End Alt 

Kuralların Yıkılması.

İlk olarak, bir FSO örneği oluşturduk.

 Dim MyFirstFSO'yu FileSystemObject Olarak Ayarla MyFirstFSO = Yeni FileSystemObject

Ardından, iki değişken tanımladık.

 Dim DriveName As Drive Dim DriveSpace As Double 

DriveName bir Nesne değişkeni olduğundan, bunu FSO yöntemlerinden biri olan FSO'ya ayarlamamız gerekir. Sürücünün karakteristiğine ihtiyacımız olduğu için Get Drive seçeneğini kullandık ve sürücü adından bahsettik.

 DriveName = MyFirstFSO.GetDrive ("C:") olarak ayarlayın

Şimdi başka bir değişken DriveSpace için, eriştiğimiz sürücünün boş alan yöntemini atayacağız.

DriveSpace = SürücüAdı.FreeSpace

Şu an itibariyle, yukarıdaki denklem bize "C" sürücüsünde boş alan sağlayabilir. Sonucu GB cinsinden göstermek için boş alanı 1073741824'e böldük

DriveSpace = DriveSpace / 1073741824

Ardından sayıyı yuvarlayacağız.

DriveSpace = Yuvarlak (DriveSpace, 2)

Son olarak, sonucu Mesaj Kutusunda gösterin.

MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"

When we run the code manually or through shortcut key F5, then in 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 then 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 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.