VBA FileSystemObject (FSO) - Jak uzyskać dostęp do FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) działa podobnie do FileDialog, używanego do uzyskiwania dostępu do innych plików komputera, na którym pracujemy. Możemy również edytować te pliki, czyli czytać lub zapisywać plik. Za pomocą FSO możemy uzyskać dostęp do plików, pracować z nimi, modyfikować pliki i foldery. FSO jest ważnym narzędziem API, do którego możemy uzyskać dostęp za pomocą VBA. W ramach projektu VBA może być konieczne uzyskanie dostępu do kilku folderów i plików na naszym komputerze, aby wykonać zadanie.

Możemy wykonać wiele zadań, używając FSO, np. „Aby sprawdzić, czy folder jest dostępny, czy nie”, utworzyć nowy folder lub pliki, zmienić nazwę istniejącego folderu lub plików, pobrać listę wszystkich plików w folderze, a także nazwy podfolderów . Wreszcie możemy kopiować pliki z jednej lokalizacji do drugiej.

Nawet jeśli są dostępne inne funkcje do pracy z folderami i plikami, FSO jest najłatwiejszą metodą pracy z folderami i plikami, utrzymując kod VBA schludny i prosty.

Możemy uzyskać dostęp do czterech typów obiektów za pomocą FileSystemObject. Poniżej znajdują się te.

  1. Dysk: za pomocą tego obiektu możemy sprawdzić, czy wspomniany dysk istnieje, czy nie. Możemy uzyskać nazwę ścieżki, rodzaj celu i wielkość przedsiębiorstwa.
  2. Folder: ten obiekt pozwala nam sprawdzić, czy dany folder istnieje, czy nie. Za pomocą tego obiektu możemy tworzyć, usuwać, modyfikować, kopiować foldery.
  3. Plik: ten obiekt pozwala nam sprawdzić, czy dany plik istnieje, czy nie. Możemy tworzyć, usuwać, modyfikować, kopiować pliki za pomocą tego obiektu VBA.
  4. Strumień tekstu: ten obiekt pozwala nam tworzyć lub czytać pliki tekstowe.

Wszystkie powyższe metody mają swoją metodę pracy. Na podstawie naszych wymagań możemy dobrać sposób wykonania każdego obiektu.

Jak włączyć FileSystemObject?

Nie jest łatwo dostępny w VBA. Ponieważ dostęp do plików i folderów jest zewnętrznym zadaniem programu Excel, musimy włączyć FileSystemObject. Aby zachęcić, wykonaj poniższe czynności.

Krok 1: Przejdź do Narzędzia> Referencje.

Krok # 2 - Wybierz opcję „Microsoft Scripting Runtime”

Przewiń w dół i wybierz opcję „Microsoft Scripting Runtime”. Po wybraniu opcji kliknij OK.

Teraz możemy uzyskać dostęp do FileSystemObject (FSO) w VBA.

Utwórz wystąpienie FileSystemObject

Po włączeniu opcji „Microsoft Scripting Runtime” z biblioteki Objects, musimy utworzyć obiekt systemu plików (FSO) poprzez kodowanie.

Aby utworzyć instancję, najpierw zadeklaruj zmienną jako FileSystemObject.

Jak widać, FileSystemObject pojawia się na liście IntelliSense w języku VBA. Nie byłoby to dostępne przed włączeniem „Microsoft Scripting Runtime”.

Ponieważ FSO jest obiektem, musimy go ustawić, aby utworzyć nową instancję.

Teraz mamy dostęp do wszystkich opcji FSO (FileSystemObject).

Przykłady użycia VBA FileSystemObject

Przykład nr 1 - Znajdź całkowitą przestrzeń na dysku

Poniższy kod poda całkowitą przestrzeń na dysku.

Kod:

Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Utwórz nowy obiekt napędu DriveSpace = DriveName.FreeSpace' To dostanie wolne miejsce dysku "C" DriveSpace = DriveSpace / 1073741824 'Spowoduje to konwersję wolnego miejsca na GB DriveSpace = Round (DriveSpace, 2)' Zaokrąglij całkowitą przestrzeń MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Pod

Podział Kodeksu.

Najpierw stworzyliśmy instancję FSO.

Dim MyFirstFSO As FileSystemObject Ustaw MyFirstFSO = New FileSystemObject

Następnie zadeklarowaliśmy dwie zmienne.

Dim DriveName As Drive Dim DriveSpace As Double

Ponieważ DriveName jest zmienną Object, musimy ustawić ją na FSO, jedną z metod FSO. Ponieważ potrzebujemy charakterystyki dysku, skorzystaliśmy z opcji Get Drive i wymieniliśmy nazwę dysku.

Ustaw DriveName = MyFirstFSO.GetDrive („C:”)

Do innej zmiennej, DriveSpace, przypiszemy metodę wolnego miejsca na dysku, do którego uzyskujemy dostęp.

DriveSpace = DriveName.FreeSpace

W tej chwili powyższe równanie może zwolnić miejsce na dysku „C”. Aby pokazać wynik w GB, podzieliliśmy otwartą przestrzeń przez 1073741824

DriveSpace = DriveSpace / 1073741824

Następnie zaokrąglimy liczbę.

DriveSpace = Round (DriveSpace, 2)

Na koniec pokaż wynik w oknie wiadomości.

MsgBox „Drive” & DriveName & „ma„ & DriveSpace ”i„ 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

Uruchom ten kod za pomocą klawisza skrótu F5 programu Excel lub ręcznie, a następnie zobacz wynik.

Przykład # 3 - Sprawdź, czy plik istnieje, czy nie

Poniższy kod sprawdzi, czy wspomniany plik jest dostępny, czy nie.

Kod:

Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Ustaw MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Następnie MsgBox "Wspomniany plik jest dostępny" Inaczej MsgBox Plik jest niedostępny ”End If End Sub

Uruchom ten kod ręcznie lub za pomocą klawisza F5, a następnie zobacz wynik.

Interesujące artykuły...