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şmek için kullanılan FileDialog'a benzer şekilde çalışır. Ayrıca bu dosyaları düzenleyebiliriz, yani dosyayı okuyabilir veya yazabiliriz. FSO 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 bir 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. . 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 dört 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 edebiliriz. İşletmenin yol adını, amacını ve 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 yöntemlerin hepsinin çalışma yöntemleri vardır. Gereksinimlerimize bağlı olarak, 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. Teşvik etmek 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

Objects kitaplığından 'Microsoft Scripting Runtime' seçeneği etkinleştirildikten sonra, kodlama yoluyla bir Dosya Sistemi Nesnesi (FSO) 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ür . Biz 'Microsoft Scripting Runtime'ı etkinleştirmeden önce bu kullanılamazdı.

FSO bir nesne olduğundan, 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

Ö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ğundan, Sürücü Al seçeneğini kullandık ve sürücü adından bahsettik.

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

Başka bir değişken olan DriveSpace için erişmekte olduğumuz 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 açık 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 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

Bu kodu excel Kısayol tuşu F5 ile veya manuel olarak çalıştırın, ardından sonucu görün.

Örnek 3 - Dosyanın Mevcut Olup Olmadığını Kontrol Edin

Aşağıdaki kod, bahsedilen dosyanın mevcut olup olmadığını kontrol edecektir.

Kod:

Alt FSO_Example3 () MyFirstFSO'nun Altını FileSystemObject Olarak Ayarla MyFirstFSO = Yeni FileSystemObject Ayarla MyFirstFSO.FileExists ("D: Excel Files VBA VBA Dosyaları Test Dosyası.xlsm") Sonra MsgBox "Bahsedilen Dosya Kullanılabilir" Başka Mesaj Kutusu " Dosya Kullanılamıyor "End If End Sub

Bu kodu manuel olarak veya F5 tuşunu kullanarak çalıştırın, ardından sonucu görün.

Ilginç makaleler...