VBA FileSystemObject (FSO) | كيفية الوصول إلى FileSystemObject؟

Excel VBA FileSystemObject (FSO)

يعمل VBA FileSystemObject (FSO) بشكل مشابه لـ FileDialog ، والذي يستخدم للوصول إلى ملفات أخرى على الكمبيوتر الذي نعمل عليه. يمكننا أيضًا تعديل هذه الملفات يعني قراءة الملف أو كتابته. باستخدام FSO يمكننا الوصول إلى الملفات والعمل معها وتعديل الملفات والمجلدات. FSO هي أداة واجهة برمجة التطبيقات المهمة التي يمكننا الوصول إليها باستخدام VBA. كجزء من مشروع VBA ، قد نحتاج إلى الوصول إلى بعض المجلدات والملفات في جهاز الكمبيوتر الخاص بنا لإنجاز المهمة.

يمكننا القيام بالعديد من المهام باستخدام FSO مثل "التحقق مما إذا كان المجلد متاحًا أم لا" ، وإنشاء مجلد أو ملفات جديدة ، وإعادة تسمية المجلد أو الملفات الموجودة ، والحصول على قائمة بجميع الملفات الموجودة في المجلد وكذلك أسماء المجلدات الفرعية ، و أخيرًا ، يمكننا نسخ الملفات من موقع إلى آخر.

حتى أن هناك وظائف أخرى متاحة للعمل مع المجلدات والملفات ، فإن FSO هي أسهل طريقة للعمل مع المجلدات والملفات عن طريق الحفاظ على رمز VBA أنيقًا ومستقيمًا.

يمكننا الوصول إلى 4 أنواع من الكائنات باستخدام 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 Runtime".

نظرًا لأن FSO هو كائن ، نحتاج إلى ضبطه لإنشاء مثيل جديد.

الآن يمكننا الوصول إلى جميع خيارات FSO (FileSystemObject).

أمثلة لاستخدام VBA FileSystemObject

يمكنك تنزيل قالب إكسل VBA FileSystemObject من هنا - VBA FileSystemObject Excel Template

مثال # 1 - ابحث عن إجمالي مساحة محرك الأقراص

سيعطي الكود أدناه المساحة الإجمالية لمحرك الأقراص.

رمز:

 Sub FSO_Example1 () خافت MyFirstFSO كـ FileSystemObject تعيين MyFirstFSO = New FileSystemObject Dim DriveName على أنه محرك أقراص خافت DriveSpace كمجموعة مزدوجة DriveName = MyFirstFSO.GetDrive ("C:") 'إنشاء كائن محرك جديد DriveSpace = DriveName.FreeSpace' هذا سيحصل على المساحة الحرة من محرك الأقراص "C" DriveSpace = DriveSpace / 1073741824 'سيؤدي هذا إلى تحويل المساحة الخالية إلى GB DriveSpace = Round (DriveSpace، 2)' تقريب المساحة الإجمالية MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End الفرعية 

كسر من المدونة.

أولاً ، أنشأنا مثيلًا لـ FSO.

 قم بتعتيم MyFirstFSO كـ FileSystemObject تعيين MyFirstFSO = New FileSystemObject

بعد ذلك ، أعلنا عن متغيرين.

 محرك خافت الاسم باسم محرك خافت مساحة محرك الأقراص كمزدوجة 

نظرًا لأن DriveName هو متغير كائن ، نحتاج إلى تعيين هذا على FSO كأحد طرق FSO. نظرًا لأننا نحتاج إلى خاصية محرك الأقراص ، فقد استخدمنا خيار Get Drive وذكرنا اسم محرك الأقراص

 تعيين DriveName = MyFirstFSO.GetDrive ("C:")

الآن بالنسبة إلى DriveSpace متغير آخر ، سنقوم بتعيين طريقة المساحة الخالية لمحرك الأقراص الذي نقوم بالوصول إليه.

DriveSpace = DriveName.FreeSpace

اعتبارًا من الآن ، يمكن أن توفر لنا المعادلة أعلاه مساحة خالية من محرك الأقراص "C". لإظهار النتيجة في GB ، قمنا بتقسيم المساحة الخالية على 1073741824

DriveSpace = DriveSpace / 1073741824

بعد ذلك ، سنقرب الرقم.

DriveSpace = Round (DriveSpace، 2)

أخيرًا ، اعرض النتيجة في صندوق الرسائل.

MsgBox "Drive" & DriveName & "به" & DriveSpace & "جيجابايت"

عندما نقوم بتشغيل الكود يدويًا أو من خلال مفتاح الاختصار F5 ، سنحصل في مربع الرسائل على المساحة الخالية لمحرك الأقراص "C".

لذلك ، يحتوي محرك الأقراص C في جهاز الكمبيوتر الخاص بي على 216.19 جيجابايت من مساحة الذاكرة الفارغة.

مثال # 2 - تحقق مما إذا كان المجلد موجودًا أم لا

للتحقق مما إذا كان المجلد المحدد موجودًا أم لا ، استخدم الكود أدناه.

إذا كان المجلد المذكور متاحًا ، فسيعرض لنا مربع الرسالة على أنه "المجلد المذكور متاح" ، وإذا لم يكن كذلك فسيظهر مربع رسالة VBA على أنه "المجلد المذكور غير متوفر".

رمز:

 Sub FSO_Example2 () خافت MyFirstFSO كـ FileSystemObject تعيين MyFirstFSO = New FileSystemObject إذا كان MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") ثم MsgBox "المجلد المذكور متاح" Else MsgBox "المجلد المذكور غير متوفر" End If End Sub 

قم بتشغيل هذا الرمز من خلال مفتاح اختصار Excel F5 أو يدويًا ، ثم شاهد النتيجة.

مثال # 3 - تحقق مما إذا كان الملف موجودًا أم لا

سيتحقق الكود أدناه مما إذا كان الملف المذكور متاحًا أم لا.

رمز:

 Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: \ Excel Files \ VBA \ VBA Files \ Testing File.xlsm") ثم MsgBox "الملف المذكور متاح" آخر MsgBox " الملف غير متوفر "End If End Sub 

قم بتشغيل هذا الرمز يدويًا أو باستخدام المفتاح F5 ، ثم شاهد النتيجة.


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