לולאות FOR
לולאה היא טכניקה לביצוע פעולות שחוזרות על עצמן.
במקום לכתוב את הפעולות שוב ושוב, נכתוב אותן פעם אחת בלבד, נכניס למבנה לולאה
ונורה לתוכנה כמה פעמים לחזור על הפעולות.
ישנם שני סוגים עיקריים של לולאות – לולאות מסוג DO ולולאות מסוג FOR.
לולאת FOR, בה יעסוק מאמר זה, מאפשרת לחזור על קוד, מספר פעמים ידוע מראש.
מבנה הלולאה:
For counter = X To Y
פקודות לביצוע
Next counter
דוגמה:
For i = 1 To 10 MsgBox (i) Next i
בלולאה שלעיל נעשה שימוש במשתנה i אשר מקבל ערכים בין 1 ל-10
בכל פעם שהמשתנה מקבל ערך, מוצגת תיבת הודעה עם ערך המשתנה.
כברירת מחדל גדל מונה הלולאה ב-1 בכל פעם, אולם ניתן לקבוע את מספר ה"פסיעות" על ידי שימוש בפקודה Step:
For i = 2 To 10 Step 2 MsgBox (i) Next i
דוגמה נוספת:
For i = 10 To 2 Step -2 MsgBox (i) Next i
דוגמה ליצירת לוח הכפל באמצעות לולאת For:
For i = 1 To 10 For j = 1 To 10 Cells(i, j) = i * j Next j Next i
הסבר:
בקוד זה שני משתנים – i ו- j אשר מקבלים את הערכים מ-1 ועד 10.
כמו כן, קיימות שתי לולאות for – פנימית וחיצונית.
בכל פעם שמונה הלולאה החיצונית i גדל ב-1,
רצה הלולאה הפנימית (j) עשר פעמים ומזינה לתוך התא שמיקומו כערך המשתנים i ו-j את מכפלתם.
המלצה:
הריצו את הקוד הבא שלב אחרי שלב וצפו בחלונית Watch אחר השתנות הערכים.
שימו לב לכך שאין צורך לבחור את התא על ידי שימוש בפקודה select כדי להזין לתוכו ערך!
(למעשה, אחד ההבדלים בין תכניתן מנוסה לתכניתן טירון הוא במידת השימוש בפקודה select…)
טיפ:
ניתן להשתמש במשתנים לצורך קביעת ערכי ההתחלה והסוף:
ShtCnt = ActiveWorkbook.Sheets.Count For i = 1 To ShtCnt Sheets(i).Range("a1").Value = Sheets(i).Name Next i
בדוגמה שלעיל השתמשנו במשתנה ShtCnt כדי לקבוע את מספר הגיליונות בחוברת העבודה.
לאחר מכן השתמשנו בלולאת For-Next אשר רצה מספר פעמים כמספר הגיליונות
ומזינה לתוך תא A1, בכל אחד מהגיליונות, את שם הגיליון.
רוצים ללמוד על לולאת DO? לחצו כאן