VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funktioniert ähnlich wie FileDialog, um Zugriff auf andere Dateien des Computers zu erhalten, an dem wir arbeiten. Wir können diese Dateien auch bearbeiten, indem wir die Datei lesen oder schreiben. Mit FSO können wir auf Dateien zugreifen, mit ihnen arbeiten, Dateien und Ordner ändern. FSO ist das wichtige API-Tool, auf das wir mit VBA zugreifen können. Im Rahmen des VBA-Projekts müssen wir möglicherweise auf einige Ordner und Dateien auf unserem Computer zugreifen, um die Aufgabe zu erledigen.

Wir können viele Aufgaben ausführen, indem wir FSO verwenden, z. B. "Überprüfen, ob der Ordner verfügbar ist oder nicht", "Neuen Ordner oder neue Dateien erstellen", den vorhandenen Ordner oder die vorhandenen Dateien umbenennen, die Liste aller Dateien im Ordner sowie die Namen der Unterordner abrufen und Schließlich können wir Dateien von einem Ort an einen anderen kopieren.

Auch wenn andere Funktionen für die Arbeit mit Ordnern und Dateien verfügbar sind, ist FSO die einfachste Methode, um mit Ordnern und Dateien zu arbeiten, indem der VBA-Code sauber und gerade gehalten wird.

Mit FileSystemObject können wir auf 4 Objekttypen zugreifen. Unten sind diese.

  1. Laufwerk: Mit diesem Objekt können wir überprüfen, ob das erwähnte Laufwerk vorhanden ist oder nicht. Wir können den Pfadnamen, den Laufwerkstyp und die Größe des Laufwerks abrufen.
  2. Ordner: Mit diesem Objekt können wir überprüfen, ob der bestimmte Ordner vorhanden ist oder nicht. Mit diesem Objekt können wir Ordner erstellen, löschen, ändern und kopieren.
  3. Datei: Mit diesem Objekt können wir überprüfen, ob die bestimmte Datei vorhanden ist oder nicht. Mit diesem vba-Objekt können wir Dateien erstellen, löschen, ändern und kopieren.
  4. Textstrom : Mit diesem Objekt können wir Textdateien erstellen oder lesen.

Alle oben genannten Methoden haben ihre eigene Methode, mit der sie arbeiten können. Basierend auf unserer Anforderung können wir die Methode für jedes Objekt auswählen.

Wie aktiviere ich FileSystemObject?

Es ist in VBA nicht leicht zugänglich. Da der Zugriff auf Dateien und Ordner die externe Aufgabe von Excel ist, müssen wir das FileSystemObject aktivieren. Führen Sie zum Aktivieren die folgenden Schritte aus.

Schritt 1: Gehen Sie zu Extras> Referenzen.

Schritt 2 - Wählen Sie die Option "Microsoft Scripting Runtime"

Scrollen Sie nach unten und wählen Sie die Option "Microsoft Scripting Runtime". Nachdem Sie die Optionen ausgewählt haben, klicken Sie auf OK.

Jetzt können wir auf das FileSystemObject (FSO) in vba zugreifen.

Erstellen Sie eine Instanz von FileSystemObject

Sobald die Option "Microsoft Scripting Runtime" in der Objektbibliothek aktiviert ist, müssen wir die Instanz des Dateisystemobjekts (FSO) durch Codierung erstellen.

Um die Instanz zu erstellen, deklarieren Sie zuerst die Variable als FileSystemObject.

Wie wir sehen können, wird FileSystemObject in der IntelliSense-Liste in VBA angezeigt. Dies wäre nicht verfügbar gewesen, bevor wir die "Microsoft Scripting Runtime" aktiviert haben.

Da FSO ein Objekt ist, müssen wir es festlegen, um eine neue Instanz zu erstellen.

Jetzt können wir auf alle Optionen von FSO (FileSystemObject) zugreifen.

Beispiele für die Verwendung von VBA FileSystemObject

Sie können diese VBA FileSystemObject Excel-Vorlage hier herunterladen - VBA FileSystemObject Excel-Vorlage

Beispiel 1 - Ermitteln Sie den gesamten Speicherplatz

Der folgende Code gibt den Gesamtspeicherplatz des Laufwerks an.

Code:

 Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Neues Laufwerksobjekt erstellen DriveSpace = DriveName.FreeSpace' Dies erhält den freien Speicherplatz des Laufwerks "C" DriveSpace = DriveSpace / 1073741824 'Dies konvertiert den freien Speicherplatz in GB. DriveSpace = Round (DriveSpace, 2)' Rundet den Gesamtspeicherplatz. MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Aufschlüsselung des Codes.

Zuerst haben wir eine Instanz von FSO erstellt.

 MyFirstFSO als FileSystemObject dimmen Setzen Sie MyFirstFSO = New FileSystemObject

Als nächstes haben wir zwei Variablen deklariert.

 Dim DriveName As Drive Dim DriveSpace As Double 

Da DriveName eine Objektvariable ist, müssen wir diese auf FSO, eine der FSO-Methoden, setzen. Da wir die Charakteristik des Laufwerks benötigen, haben wir die Option Get Drive verwendet und den Laufwerksnamen erwähnt

 Setzen Sie DriveName = MyFirstFSO.GetDrive ("C:")

Für eine andere Variable DriveSpace weisen wir nun die Methode für freien Speicherplatz des Laufwerks zu, auf das wir zugreifen.

DriveSpace = DriveName.FreeSpace

Mit der obigen Gleichung können wir ab sofort freien Speicherplatz für das Laufwerk "C" erhalten. Um das Ergebnis in GB anzuzeigen, haben wir den freien Speicherplatz durch 1073741824 geteilt

DriveSpace = DriveSpace / 1073741824

Als nächstes werden wir die Zahl runden.

DriveSpace = Rund (DriveSpace, 2)

Zeigen Sie das Ergebnis abschließend im Meldungsfeld an.

MsgBox "Drive" & DriveName & "hat" & DriveSpace & "GB"

Wenn wir den Code manuell oder über die Tastenkombination F5 ausführen, erhalten wir im Meldungsfeld den freien Speicherplatz des Laufwerks „C“.

Auf meinem Computer verfügt Laufwerk C über 216,19 GB freien Speicherplatz.

Beispiel 2 - Überprüfen Sie, ob der Ordner vorhanden ist oder nicht

Verwenden Sie den folgenden Code, um zu überprüfen, ob der bestimmte Ordner vorhanden ist oder nicht.

Wenn der genannte Ordner verfügbar ist, wird das Meldungsfeld als "Der erwähnte Ordner ist verfügbar" angezeigt . Wenn nicht, wird das VBA-Meldungsfeld als "Der erwähnte Ordner ist nicht verfügbar" angezeigt.

Code:

 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 If End Sub 

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

 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 If End Sub 

Run this code manually or using the F5 key, then see the result.