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 ExcelVBA 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 -
- Kompletny przewodnik do skoroszytu VBA
- Funkcja POŚREDNIE w programie Excel
- Funkcja zliczania VBA
- Funkcja Excel XOR