VBA FileSystemObject (FSO) - Πώς να αποκτήσετε πρόσβαση στο FileSystemObject;

Πίνακας περιεχομένων

Excel VBA FileSystemObject (FSO)

Το VBA FileSystemObject (FSO) λειτουργεί παρόμοιο με το FileDialog, που χρησιμοποιείται για την πρόσβαση σε άλλα αρχεία του υπολογιστή στον οποίο εργαζόμαστε. Μπορούμε επίσης να επεξεργαστούμε αυτά τα αρχεία σημαίνει ανάγνωση ή εγγραφή του αρχείου. Χρησιμοποιώντας το FSO μπορούμε να έχουμε πρόσβαση σε αρχεία, να δουλεύουμε μαζί τους, να τροποποιούμε αρχεία και φακέλους. Το FSO είναι το σημαντικό εργαλείο API στο οποίο έχουμε πρόσβαση με το VBA. Ως μέρος του έργου VBA, ίσως χρειαστεί να έχουμε πρόσβαση σε μερικούς φακέλους και αρχεία στον υπολογιστή μας για να ολοκληρώσουμε τη δουλειά.

Μπορούμε να κάνουμε πολλές εργασίες χρησιμοποιώντας το FSO, όπως «για να ελέγξετε αν ο φάκελος είναι διαθέσιμος ή όχι», Δημιουργήστε έναν νέο φάκελο ή αρχεία, μετονομάστε τον υπάρχοντα φάκελο ή αρχεία, λάβετε τη λίστα όλων των αρχείων στον φάκελο, καθώς και ονόματα υποφακέλων . Τέλος, μπορούμε να αντιγράψουμε αρχεία από τη μία τοποθεσία στην άλλη.

Ακόμα και υπάρχουν και άλλες λειτουργίες διαθέσιμες για εργασία με φακέλους και αρχεία, το FSO είναι η ευκολότερη μέθοδος εργασίας με φακέλους και αρχεία διατηρώντας τον κώδικα VBA καθαρό και ίσιο.

Μπορούμε να έχουμε πρόσβαση σε τέσσερις τύπους αντικειμένων με το FileSystemObject. Παρακάτω είναι αυτά.

  1. Drive: Χρησιμοποιώντας αυτό το αντικείμενο, μπορούμε να ελέγξουμε εάν υπάρχει η αναφερόμενη μονάδα δίσκου ή όχι. Μπορούμε να λάβουμε το όνομα διαδρομής, τον τύπο του σκοπού και το μέγεθος της επιχείρησης.
  2. Φάκελος: Αυτό το αντικείμενο μας επιτρέπει να ελέγξουμε εάν ο συγκεκριμένος φάκελος υπάρχει ή όχι. Μπορούμε να δημιουργήσουμε, να διαγράψουμε, να τροποποιήσουμε, να αντιγράψουμε φακέλους χρησιμοποιώντας αυτό το αντικείμενο.
  3. Αρχείο: Αυτό το αντικείμενο μας επιτρέπει να ελέγξουμε εάν το συγκεκριμένο αρχείο υπάρχει ή όχι. Μπορούμε να δημιουργήσουμε, να διαγράψουμε, να τροποποιήσουμε, να αντιγράψουμε αρχεία χρησιμοποιώντας αυτό το αντικείμενο VBA.
  4. Ροή κειμένου: Αυτό το αντικείμενο μας επιτρέπει να δημιουργούμε ή να διαβάζουμε αρχεία κειμένου.

Όλες οι παραπάνω μέθοδοι έχουν τη μέθοδο τους να δουλέψουν. Με βάση τις απαιτήσεις μας, μπορούμε να επιλέξουμε τη μέθοδο κάθε αντικειμένου.

Πώς να ενεργοποιήσετε το FileSystemObject;

Δεν είναι εύκολα προσβάσιμο στο VBA. Δεδομένου ότι η πρόσβαση σε αρχεία και φακέλους είναι η εξωτερική εργασία του excel, πρέπει να ενεργοποιήσουμε το FileSystemObject. Για να ενθαρρύνετε, ακολουθήστε τα παρακάτω βήματα.

Βήμα 1: Μεταβείτε στα Εργαλεία> Αναφορές.

Βήμα 2 - Επιλέξτε "Microsoft Scripting Runtime"

Κάντε κύλιση προς τα κάτω και ορίστε την επιλογή «Microsoft Scripting Runtime». Αφού κάνετε τις επιλογές, κάντε κλικ στο OK.

Τώρα μπορούμε να έχουμε πρόσβαση στο FileSystemObject (FSO) στο VBA.

Δημιουργήστε μια παρουσία του FileSystemObject

Μόλις ενεργοποιηθεί η επιλογή «Microsoft Scripting Runtime» από τη βιβλιοθήκη Objects, πρέπει να δημιουργήσουμε ένα File System Object (FSO) μέσω κωδικοποίησης.

Για να δημιουργήσετε την παρουσία, δηλώστε πρώτα τη μεταβλητή ως FileSystemObject.

Όπως μπορούμε να δούμε, το FileSystemObject εμφανίζεται στη λίστα IntelliSense στο VBA. Αυτό δεν θα ήταν διαθέσιμο προτού ενεργοποιήσουμε το «Microsoft Scripting Runtime».

Δεδομένου ότι το FSO είναι ένα αντικείμενο, πρέπει να το ρυθμίσουμε για να δημιουργήσουμε μια νέα παρουσία.

Τώρα μπορούμε να έχουμε πρόσβαση σε όλες τις επιλογές του FSO (FileSystemObject).

Παραδείγματα χρήσης του VBA FileSystemObject

Παράδειγμα # 1 - Βρείτε το συνολικό χώρο στο Drive

Ο παρακάτω κώδικας θα δώσει το συνολικό χώρο της μονάδας δίσκου.

Κώδικας:

Υπο FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Δημιουργία νέου αντικειμένου δίσκου DriveSpace = DriveName.FreeSpace της μονάδας δίσκου "C" DriveSpace = DriveSpace / 1073741824 'Αυτό θα μετατρέψει τον ελεύθερο χώρο σε GB DriveSpace = Γύρος (DriveSpace, 2)' Γύρος του συνολικού χώρου MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Υπο

Κατανομή του κώδικα.

Αρχικά, δημιουργήσαμε μια παρουσία του FSO.

Dim MyFirstFSO ως FileSystemObject Ορισμός MyFirstFSO = Νέο FileSystemObject

Στη συνέχεια, έχουμε δηλώσει δύο μεταβλητές.

Dim DriveName As Drive Dim DriveSpace As Double

Δεδομένου ότι το DriveName είναι μια μεταβλητή Object, πρέπει να το ορίσουμε σε FSO μία από τις μεθόδους FSO. Εφόσον χρειαζόμαστε το χαρακτηριστικό της μονάδας δίσκου, χρησιμοποιήσαμε την επιλογή Get Drive και αναφέραμε το όνομα της μονάδας δίσκου.

Ορισμός DriveName = MyFirstFSO.GetDrive ("C:")

Για μια άλλη μεταβλητή, το DriveSpace, θα εκχωρήσουμε τη μέθοδο ελεύθερου χώρου της μονάδας δίσκου στην οποία έχουμε πρόσβαση.

DriveSpace = DriveName.FreeSpace

Από τώρα, η παραπάνω εξίσωση μπορεί να μας πάρει ελεύθερο χώρο της μονάδας δίσκου "C." Έτσι, για να δείξουμε το αποτέλεσμα σε GB, διαιρέσαμε τον ανοιχτό χώρο με 1073741824

DriveSpace = DriveSpace / 1073741824

Στη συνέχεια, θα στρογγυλοποιήσουμε τον αριθμό.

DriveSpace = Γύρος (DriveSpace, 2)

Τέλος, δείξτε το αποτέλεσμα στο πλαίσιο μηνυμάτων.

MsgBox "Drive" & DriveName & "has" & DriveSpace & "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

Εκτελέστε αυτόν τον κωδικό μέσω του excel πλήκτρου F5 ή χειροκίνητα και, στη συνέχεια, δείτε το αποτέλεσμα

Παράδειγμα # 3 - Ελέγξτε αν το αρχείο υπάρχει ή όχι

Ο παρακάτω κώδικας θα ελέγξει εάν το αναφερόμενο αρχείο είναι διαθέσιμο ή όχι.

Κώδικας:

Υπο FSO_Example3 () Dim MyFirstFSO ως FileSystemObject Set MyFirstFSO = New FileSystemObject if MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Στη συνέχεια MsgBox "Το αναφερόμενο αρχείο είναι διαθέσιμο" Άλλως Το αρχείο δεν είναι διαθέσιμο "End if End Sub

Εκτελέστε αυτόν τον κωδικό χειροκίνητα ή χρησιμοποιώντας το πλήκτρο F5 και, στη συνέχεια, δείτε το αποτέλεσμα.

ενδιαφέροντα άρθρα...