Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) działa podobnie do FileDialog, służy do uzyskania dostępu do innych plików komputera, na którym pracujemy. Możemy również edytować te pliki czyli odczytywać lub zapisywać plik. Używając 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 mamy dostęp za pomocą VBA. W ramach projektu VBA, możemy potrzebować dostępu do kilku folderów i plików w naszym komputerze, aby wykonać zadanie.

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

Nawet istnieją inne funkcje dostępne do pracy z folderami i plikami, FSO jest najprostszą metodą pracy z folderami i plikami, utrzymując kod VBA schludny i prosty.

Z FileSystemObject możemy uzyskać dostęp do czterech typów obiektów. Poniżej znajdują się te obiekty.

  1. Dysk: Używając tego obiektu, możemy sprawdzić, czy wspomniany dysk istnieje, czy nie. Możemy uzyskać nazwę ścieżki, typ przeznaczenia i rozmiar przedsiębiorstwa.
  2. Folder: Ten obiekt pozwala nam sprawdzić, czy dany folder istnieje, czy nie. Możemy tworzyć, usuwać, modyfikować, kopiować foldery przy pomocy tego obiektu.
  3. Plik: Ten obiekt pozwala nam sprawdzić czy dany plik istnieje czy nie. Możemy tworzyć, usuwać, modyfikować, kopiować pliki przy pomocy tego obiektu VBA.
  4. Strumień tekstowy: Ten obiekt pozwala nam na tworzenie lub odczytywanie plików tekstowych.

Wszystkie powyższe metody mają swoją metodę pracy. Na podstawie naszych wymagań możemy wybrać metodę każdego obiektu.

How to Enable FileSystemObject?

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

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.

Create an Instance of FileSystemObject

Po włączeniu opcji 'Microsoft Scripting Runtime’ z biblioteki Objects, musimy utworzyć File System Object (FSO) poprzez kodowanie.

Popularny kurs w tej kategorii

Szkolenie VBA (3 kursy, 12+ projektów)
4.6 (247 ocen) 3 Kursy | 12 Projektów | 43+ godzin | Pełny dożywotni dostęp | Certyfikat ukończenia

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

Jak widzimy, FileSystemObject pojawia się na liście IntelliSense w VBA. Nie byłoby to dostępne, gdybyśmy włączyli '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

Możesz pobrać ten szablon VBA FileSystemObject Excel Template tutaj – VBA FileSystemObject Excel Template

Przykład #1 – Znajdź całkowitą przestrzeń dysku

Poniższy kod da całkowitą przestrzeń 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:") 'Create new drive object DriveSpace = DriveName.FreeSpace 'This will get the free space of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Rozkład kodu.

Najpierw utworzyliśmy instancję FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Następnie zadeklarowaliśmy dwie zmienne.

Dim DriveName As DriveDim 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.

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

Dla kolejnej zmiennej, DriveSpace, przypiszemy metodę Free Space dysku, do którego uzyskujemy dostęp.

DriveSpace = DriveName.FreeSpace

Jak na razie, powyższe równanie może uzyskać nam wolną przestrzeń dysku „C.”. Tak wię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 Message Box.

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

Gdy uruchomimy kod ręcznie lub poprzez skrót klawiszowy F5, wtedy w oknie wiadomości, dostaniemy wolną przestrzeń dysku „C.”

Więc, w moim komputerze dysk C ma 216,19 GB wolnej pamięci.

Przykład #2 – Sprawdź czy folder istnieje czy nie

Aby sprawdzić czy dany folder istnieje czy nie, użyj poniższego kodu.

Jeśli wspomniany folder jest dostępny, pokaże nam okno wiadomości jako „Wspomniany folder jest dostępny”. Jeśli nie, pokaże okno komunikatu VBA jako „The Mentioned Folder is Not Available.”

Kod:

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 IfEnd Sub

Uruchom ten kod poprzez klawisz skrótu Excela F5 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 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 IfEnd Sub

Uruchom ten kod ręcznie lub używając klawisza F5, a następnie zobacz wynik.

Zalecane artykuły

To był przewodnik po VBA FileSystemObject. Tutaj dowiemy się, jak korzystać z FileSystemObject (FSO) w VBA, aby uzyskać dostęp do plików i folderów z komputera oraz praktyczne przykłady i szablon excel do pobrania. Poniżej znajdziesz kilka przydatnych artykułów o Excelu VBA –

  • ME Słowo kluczowe w VBA
  • StrComp Funkcja w VBA
  • StrConv Funkcja w VBA
  • VBA IIF
0 Akcji
Szkolenie VBA (3 Kursy, 12+ Projekty)

  • 3 Kursy
  • 12 Projektów Hands-on
  • 43+ Godzin
  • Pełny Dożywotni Dostęp
  • Certyfikat Ukończenia

LEARN MORE >>

.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.