Wprowadzenie do FileSystemObject

Dlaczego korzystamy z VBA? Używamy VBA do automatyzacji naszych zadań. Zwykle w programie Excel pracujemy tylko z danymi obecnymi w wierszach i kolumnach, które mają postać tabel lub czegoś podobnego. Ale co z plikami i folderami, które nie są częścią programu Excel? Co jeśli musimy użyć tych danych z dowolnego pliku, w jaki sposób uzyskamy do nich dostęp. Tutaj przydaje się FileSystemObject.

FileSystemObject lub FSO służy do uzyskiwania dostępu do systemu plików z naszego komputera. Dzięki temu możemy uzyskać dostęp do wszystkich folderów plików, które mamy na komputerze, nad którym pracujemy. FSO jest w zasadzie narzędziem API, które służy do uzyskiwania dostępu do innych plików. Teraz nie ma tego domyślnie w VBA, o czym dowiemy się w dalszej części tego artykułu. Pozwól nam najpierw zrozumieć, czym jest FSO. Wcześniej w VBA mieliśmy funkcję DIR, do której uzyskiwano dostęp do innych plików i folderów z komputera. Kodowanie funkcji DIR było bardzo skomplikowane w obsłudze. Ale w FSO jest inaczej.

Teraz są cztery typy obiektów, do których FSO może uzyskać dostęp i są one następujące:

  • Dysk: używany do uzyskania dostępu do wspomnianego dysku.
  • Folder: służy do uzyskania dostępu do wspomnianego folderu.
  • Plik: służy do uzyskania dostępu do wspomnianego pliku.
  • Strumień tekstu: Za pomocą tego obiektu możemy odczytać lub napisać plik tekstowy.

Każdy z wyżej wymienionych obiektów ma inne metody korzystania z nich. Na przykład, jeśli chcemy skopiować plik, użyjemy metody CopyFile lub usuniemy folder, użyjemy metody DeleteFolder i tak dalej.

Jak omówiłem powyżej, FSO nie jest domyślnie obecny w VBA, istnieją dwie metody włączenia FSO w VBA.

  • Pierwsza metoda polega na ustawieniu odwołania.
  • Drugą metodą jest odwołanie się do biblioteki z kodu.

Chociaż druga metoda jest bardziej złożona, zawsze zaleca się stosowanie pierwszej metody, która jest bardzo prosta. Postępujmy zgodnie z tymi podstawowymi krokami.

W VBA przejdź do zakładki Narzędzia, a następnie przejdź do Referencje,

Pojawi się okno kreatora, wybierz Microsoft Scripting Runtime, jak pokazano poniżej, i naciśnij OK.

Teraz możemy uzyskać dostęp do FSO w VBA. Teraz wykorzystajmy to na kilku przykładach i dowiedzmy się o tym.

Jak korzystać z VBA FileSystemObject w Excelu?

Poniżej znajdują się różne przykłady użycia funkcji VBA FileSystemObject w programie Excel

Możesz pobrać ten szablon VBA FileSystemObject Excel tutaj - Szablon VBA FileSystemObject Excel

VBA FileSystemObject - Przykład nr 1

Zanim zaczniemy używać FSO w Vba, najpierw nauczmy się tworzyć instancje w VBA.

Krok 1: W module podrzędnym utwórz procedurę podrzędną,

Kod:

 Sub Newfso () End Sub 

Krok 2: Zadeklaruj zmienną jako FileSystemObject, jak pokazano poniżej,

Kod:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Krok 3: Teraz musimy utworzyć instancję, ponieważ FSO jest obiektem przy użyciu instrukcji SET, jak pokazano poniżej,

Kod:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject End Sub 

Teraz to oświadczenie pozwoli nam tworzyć lub modyfikować pliki lub foldery przy użyciu FSO.

Krok 4: Teraz możemy zobaczyć funkcję IntelliSense po włączeniu FSO. Użyj operatora kropki w następujący sposób,

Kod:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject A. End Sub 

Dało nam różne opcje za pomocą funkcji IntelliSense. W ten sposób tworzymy wystąpienia za pomocą FSO.

VBA FileSystemObject - Przykład nr 2

Teraz, ponieważ stworzyliśmy instancję w przykładzie 1, przejdźmy dalej, aby z niej skorzystać i sprawdź, czy plik lub folder istnieje, czy nie.

Krok 1: Po utworzeniu nowego FileSystemObject użyj instrukcji IF, aby ustalić, czy folder istnieje, czy nie, w następujący sposób,

Kod:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject Jeśli A.FolderExists („C: \ Users \ Public \ Project”), a następnie End Sub 

Krok 2: Jeśli folder istnieje, chcemy wyświetlić folder istnieje, a jeśli nie, chcemy, aby ten folder nie istniał.

Kod:

 Sub Newfso () Dim A As FileSystemObject Zestaw A = Nowy FileSystemObject Jeśli A.FolderExists („C: \ Users \ Public \ Project”), to MsgBox „Folder istnieje„ Else MsgBox ”Folder nie istnieje” End If End Sub 

Krok 3: Teraz uruchom powyższy kod i zobacz wynik w następujący sposób,

Folder istnieje na moim pulpicie, więc otrzymujemy wiadomość, że folder istnieje.

VBA FileSystemObject - Przykład nr 3

Teraz, gdy dyskutowaliśmy, że FSO ma różne obiekty, takie jak dyski. Pozwól nam dowiedzieć się, ile miejsca mam na dysku E.

Krok 1: Rozpocznij od innej podprocedury w następujący sposób,

Kod:

 Sub Newfso1 () End Sub 

Krok 2: Teraz zadeklaruj zmienną jako FileSystemObject i ustaw ją na nową instancję w następujący sposób:

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject End Sub 

Krok 3: Teraz, ponieważ używamy właściwości Dysk, zadeklaruj jedną zmienną jako typ Dysku i jedną zmienną jako podwójną, aby przechowywać dane dla miejsca w następujący sposób,

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double End Sub 

Krok 4: Utwórzmy teraz nowy obiekt dysku, jak pokazano poniżej,

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") End Sub 

Jest to jedna z metod FSO, których używamy do uzyskania dostępu do dysku.

Krok 5: Użyjemy innej metody FSO, aby uzyskać wolne miejsce na dysku i zapisać go w zmiennej zdefiniowanej do przechowywania miejsca na dysku,

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub Sub 

Krok 6: Teraz obliczmy przestrzeń w GB w następujący sposób,

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Napis końcowy 

Krok 7: Teraz wyświetl wartość przechowywaną dla Dysku za pomocą funkcji msgbox w następujący sposób,

Kod:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox „The Drive” & D & „has” & Dspace & „GB free Space” End Sub 

Krok 8: Wykonaj powyższy kod, aby znaleźć poniższy wynik,

VBA FileSystemObject - Przykład nr 4

Teraz utwórzmy nowy folder do określonej lokalizacji za pomocą FSO.

Krok 1: Ponownie zacznijmy od innej podprocedury w następujący sposób,

Kod:

 Sub Newfso2 () End Sub 

Krok 2: Wykonajmy te same kroki i utwórz instancję w następujący sposób,

Kod:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New FileSystemObject End Sub 

Krok 3: Teraz użyjemy metody Utwórz folder, aby utworzyć nowy folder w określonej lokalizacji,

Kod:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New FileSystemObject A.CreateFolder („C: \ Users \ Public \ Project \ FSOExample”) End Sub 

Krok 4: Wykonaj powyższy kod i zobacz wynik na pulpicie w następujący sposób,

Pomyślnie utworzyliśmy nowy folder do określonej lokalizacji.

Rzeczy do zapamiętania w VBA FileSystemObject

  • FSO to narzędzie aplikacji API.
  • FSO nie jest domyślnie dostępny w VBA.
  • Dzięki FSO możemy tworzyć, modyfikować lub czytać pliki i foldery na komputerze.
  • Możemy również użyć FSO dla naszych dysków sieciowych.

Polecane artykuły

Jest to przewodnik po VBA FileSystemObject. Tutaj omawiamy, jak korzystać z VBA FileSystemObject w Excelu, a także kilka praktycznych przykładów i szablonu programu Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Kompletny przewodnik do skoroszytu VBA
  2. Funkcja POŚREDNIE w programie Excel
  3. Funkcja zliczania VBA
  4. Funkcja Excel XOR

Kategoria: