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

Excel VBA FileSystemObject (FSO)

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

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

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

Μπορούμε να έχουμε πρόσβαση σε 4 τύπους αντικειμένων με το 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» από τη βιβλιοθήκη αντικειμένων, πρέπει να δημιουργήσουμε την παρουσία του αντικειμένου συστήματος αρχείων (FSO) μέσω κωδικοποίησης.

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

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

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

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

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

Μπορείτε να κάνετε λήψη αυτού του προτύπου VBA FileSystemObject Excel εδώ - Πρότυπο VBA FileSystemObject Excel

Παράδειγμα # 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"

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

Έτσι, στον υπολογιστή μου, το Drive C έχει 216,19 GB μνήμης ελεύθερου χώρου.

Παράδειγμα # 2 - Ελέγξτε αν ο φάκελος υπάρχει ή όχι

Για να ελέγξετε εάν ο συγκεκριμένος φάκελος υπάρχει ή όχι, χρησιμοποιήστε τον παρακάτω κώδικα.

Εάν ο αναφερόμενος φάκελος είναι διαθέσιμος τότε θα μας δείξει το πλαίσιο μηνύματος ως "Ο αναφερόμενος φάκελος είναι διαθέσιμος" , εάν όχι θα εμφανιστεί το πλαίσιο μηνύματος VBA ως "Ο αναφερόμενος φάκελος δεν είναι διαθέσιμος".

Κώδικας:

 Υπο FSO_Example2 () Dim MyFirstFSO ως FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") Στη συνέχεια MsgBox "Ο αναφερόμενος φάκελος είναι διαθέσιμος" Αλλιώς το MsgBox "Ο φάκελος δεν είναι διαθέσιμος" 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 και, στη συνέχεια, δείτε το αποτέλεσμα.


$config[zx-auto] not found$config[zx-overlay] not found