الرئيسية | مايكروسوفت اوفيس | مايكروسوفت اكسل | أساسيات VBA إكسل – 07.1 الحلقات التكرارية For Each

أساسيات VBA إكسل – 07.1 الحلقات التكرارية For Each

تحدثنا في الموضوع السابق عن الحلقات التكرارية For Next وفائدتها في تنفيذ كود معين لعدد محدد من المرات واليوم نستكمل الحديث عن الحلقات التكرارية ولكن نستعرض نوع جديد وهو For Each.

أساسيات VBA إكسل - 07.1 الحلقات التكرارية For Each

الشكل العام للحلقة التكرارية For Each

For each عنصر in المجموعة
الكود المراد تنفيذه
Next عنصر

مثال
الماكرو التالي يقوم بعمل تنسيق لكل خلية (العنصر) ضمن النطاق الذي تم تحديده (المجموعة) باللون ذو الكود رقم 111

Sub For_Each_Loop()
 
For Each cell In Selection
    cell.Interior.Color = 111
Next cell
 
End Sub

ملاحظات على الحلقة التكرارية For Each

  1. تقوم الحلقة التكرارية For Each بتنفيذ الكود على العنصر element داخل المجموعة Collection وبذلك فهي يتم تنفيذها بعدد غير معلوم اثناء كتابة الكود (على عكس)
  2. الحلقة التكرارية For Next التي يتم تنفيذها بعدد معلوم حدوده من الحد الأدني Lower Bound والحد الأعلي Upper Bound
  3. يمكننا إستخدام المعامل Exit For لإيقاف الحلقة التكرارية عن العمل في حالة تحقق شرط معين (على سبيل المثال إستخدام الجملة الشرطية IF في الكود)
For Each element In Collection
كود 1
Exit For
كود 2
Next element

الأكواد المستخدمة في الفيديو

Sub ForEachLoop1()
 
Dim cell As Range
 
For Each cell In Range("b5:e12")
If cell.Value >= 5 Then
    cell.Interior.ColorIndex = 43
End If
Next cell
 
End Sub
Sub Foreachloop2()
 
Dim cell As Range
 
For Each cell In Selection
    cell.Font.ColorIndex = 3
Next cell
 
End Sub
Sub ShowAllSheets()
 
Dim sheet As Worksheet
 
    For Each sheet In Sheets
        sheet.Visible = True
    Next sheet
 
End Sub

فيديو يشرح الحلقة التكرارية For Each إكسل VBA

شاهد أيضاً

الدالة SUMIFS

حساب المجموع وفقاً لأكثر من شرط | الدالة SUMIFS مايكروسوفت اكسل

الدالة SUMIFS هي إحدى الدوال التي تم إضافتها في نسخة الأوفيس 2007، وجاءت لتكون الإمتداد ...