VBA FileSystemObject (FSO) | כיצד לגשת ל- FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) עובד בדומה ל- FileDialog, משמש בכדי לקבל גישה לקבצים אחרים במחשב עליו אנו עובדים. אנו יכולים גם לערוך קבצים אלה פירושם לקרוא או לכתוב את הקובץ. באמצעות FSO אנו יכולים לגשת לקבצים, לעבוד איתם, לשנות קבצים ותיקיות. FSO הוא כלי ה- API החשוב אליו אנו יכולים לגשת באמצעות VBA. כחלק מפרויקט VBA, ייתכן שנצטרך לגשת למספר תיקיות וקבצים במחשב שלנו כדי לבצע את העבודה.

אנו יכולים לבצע משימות רבות באמצעות FSO כמו "לבדוק אם התיקיה זמינה או לא", ליצור תיקיה או קבצים חדשים, לשנות את שם התיקיה או הקבצים הקיימים, לקבל את רשימת כל הקבצים בתיקיה וגם שמות תיקיות משנה, וכן לבסוף, אנו יכולים להעתיק קבצים ממיקום אחד למשנהו.

אפילו קיימות פונקציות אחרות לעבודה עם תיקיות וקבצים, FSO היא השיטה הקלה ביותר לעבוד עם תיקיות וקבצים על ידי שמירת קוד VBA מסודר וישר.

אנו יכולים לגשת לארבעה סוגים של אובייקטים באמצעות FileSystemObject. להלן אלה.

  1. כונן: באמצעות אובייקט זה אנו יכולים לבדוק האם הכונן המוזכר קיים או לא, אנו יכולים לקבל את שם הנתיב, סוג הכונן וגודל הכונן.
  2. תיקיה: אובייקט זה מאפשר לנו לבדוק האם התיקיה המסוימת קיימת או לא. אנו יכולים ליצור, למחוק, לשנות, להעתיק תיקיות באמצעות אובייקט זה.
  3. קובץ: אובייקט זה מאפשר לנו לבדוק אם הקובץ המסוים קיים או לא. אנו יכולים ליצור, למחוק, לשנות, להעתיק קבצים באמצעות אובייקט vba זה.
  4. זרם טקסט: אובייקט זה מאפשר לנו ליצור או לקרוא קבצי טקסט.

לכל השיטות הנ"ל יש שיטה משלהן לעבוד איתן. על פי הדרישה שלנו אנו יכולים לבחור את השיטה של ​​כל אובייקט.

כיצד להפעיל את FileSystemObject?

זה לא נגיש בקלות ב- VBA. מכיוון שגישה לקבצים ותיקיות היא המשימה החיצונית של Excel, עלינו לאפשר את FileSystemObject. כדי לאפשר, בצע את השלבים הבאים.

שלב 1: עבור אל כלים> הפניות.

שלב 2 - בחר באפשרות 'Microsoft Scripting Runtime'

גלול מטה ובחר באפשרות 'Microsoft Scripting Runtime'. לאחר בחירת האפשרויות לחץ על אישור.

כעת אנו יכולים לגשת ל- FileSystemObject (FSO) ב- vba.

צור מופע של FileSystemObject

לאחר שהאפשרות 'Microsoft Scripting Runtime' מופעלת מספריית אובייקטים, עלינו ליצור את המופע של אובייקט מערכת הקבצים (FSO) באמצעות קידוד.

כדי ליצור את המופע הכריזו תחילה על המשתנה כ- FileSystemObject.

כפי שניתן לראות FileSystemObject מופיע ברשימת IntelliSense ב- VBA. זה לא היה זמין לפני שנפעיל את 'זמן הריצה של Microsoft Scripting'.

מכיוון ש- FSO הוא אובייקט עלינו להגדיר אותו ליצירת מופע חדש.

כעת אנו יכולים לגשת לכל האפשרויות של FSO (FileSystemObject).

דוגמאות לשימוש ב- VBA FileSystemObject

אתה יכול להוריד את תבנית ה- Excel VBA FileSystemObject כאן - תבנית ה- Excel VBA FileSystemObject

דוגמה מס '1 - מצא את שטח הכונן הכולל

הקוד שלמטה ייתן את שטח הכונן הכולל.

קוד:

 תת FSO_Example1 () עמעום MyFirstFSO כ- FileSystemObject הגדר MyFirstFSO = חדש FileSystemObject Dim DriveName ככונן עמעום DriveSpace ככפול כונן DriveName = MyFirstFSO.GetDrive ("C:") 'צור אובייקט כונן חדש DriveSpace = DriveName.FreeSpace' זה יקבל מקום פנוי של הכונן "C" DriveSpace = DriveSpace / 1073741824 'זה ימיר את השטח הפנוי ל- GB DriveSpace = עגול (DriveSpace, 2)' סביב השטח הכולל MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End תַת 

פירוט הקוד.

ראשית, יצרנו מופע של FSO.

 עמום MyFirstFSO כ- FileSystemObject הגדר MyFirstFSO = FileSystemObject חדש

לאחר מכן, הכרזנו על שני משתנים.

 כונן כונן כונן כונן כונן שטח כפול 

מכיוון ש- DriveName הוא משתנה של אובייקט עלינו להגדיר זאת ל- 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 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 then 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 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.