كيفية حذف المجلدات باستخدام vba (مع أمثلة)
يمكنك استخدام الطرق التالية في VBA لحذف المجلدات:
الطريقة الأولى: حذف كافة الملفات الموجودة في المجلد
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
سيقوم هذا الماكرو المحدد بحذف جميع الملفات الموجودة في المجلد المسمى My_Data .
الطريقة الثانية: حذف المجلد بأكمله
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
سيقوم هذا الماكرو المحدد بحذف مجلد My_Data بأكمله بحيث لم يعد موجودًا.
يخبر السطر التالي On Error Resume Next VBA أنه في حالة حدوث خطأ ولم يتم العثور على المجلد، فلن يتم عرض أي رسالة خطأ.
نستخدم بعد ذلك On Error GoTo 0 لإعادة ضبط رسائل الخطأ على الإعدادات الافتراضية.
إذا كنت تريد عرض رسالة خطأ إذا لم يتم العثور على المجلد، فما عليك سوى إزالة هذين السطرين من التعليمات البرمجية.
توضح الأمثلة التالية كيفية استخدام كل طريقة عمليًا مع المجلد التالي المسمى My_Data والذي يحتوي على ثلاثة ملفات Excel:
مثال 1: حذف كافة الملفات الموجودة في المجلد باستخدام VBA
لنفترض أننا نريد استخدام VBA لحذف جميع الملفات من المجلد المسمى My_Data .
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub DeleteFolderContents()
On Error Resume Next
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
On Error GoTo 0
End Sub
بمجرد تشغيل هذا الماكرو وفتح المجلد مرة أخرى، سنرى أنه تم حذف جميع الملفات:
مثال 2: حذف مجلد بأكمله باستخدام VBA
إذا كنت تريد استخدام VBA لحذف المجلد بأكمله المسمى My_Data بحيث لم يعد موجودًا، فيمكنك إنشاء الماكرو التالي:
SubDeleteFolder ()
On Error Resume Next
'delete all files in folder
Kill “ C:\Users\bobbi\Desktop\My_Data\*.* ”
'delete empty folder
RmDir " C:\Users\bobbi\Desktop\My_Data\ "
On Error GoTo 0
End Sub
بمجرد تشغيل هذا الماكرو وفتح File Explorer، سنرى أن المجلد المسمى My_Data لم يعد موجودًا:
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية حساب عدد الأوراق في المصنف
فبا: كيفية استخراج البيانات من مصنف آخر
VBA: كيفية حذف ورقة إذا كان الاسم يحتوي على نص محدد