מדריך | מאקרו למתחילים חלק 3: לולאות בVBA
-
אז במדריך הקודם ראינו איך לכתוב קוד וגרמנו לאקסל לכתוב משהו בתא A1 ולצבוע אותו.
זה שימושי בהחלט אבל זה לתא בודד
הכוח האמיתי של מאקרו ו-VBA מגיע כשאנחנו רוצים לעשות פעולה פשוטה – אבל על 1,000 שורות בבת אחת.
במקום לכתוב 1,000 פעמים את הקוד, אנחנו נשתמש בלולאה (Loop).לולאה מתמשכת-Loop
מה זה בעצם לולאה?
במקום לומר למחשב תבדוק בתא 1 עם יש תנאי כזה ובתא 2 עם יש תא ובתא 3 וכו' אנחנו פשוט אומרים לו לעבור על כל התאים ולבדוק אם יש תנאי מסוים בהם
ב-VBA זה עובד בדיוק אותו דבר: אנחנו אומרים לאקסל מאיפה להתחיל, איפה לסיים, ומה לעשות בכל שלב.
הכרת פקודת ה-Cells (תאים)
לפני שנראה את הלולאה, צריך להכיר שיטה נוספת לפנות לתאים.
במדריך הקודם השתמשנו ב-Range("A1"). בלולאות יותר נוח להשתמש ב-Cells.
השיטה היא כזו: Cells(שורה, עמודה).
למשל: Cells(1, 1) זה תא A1.
Cells(2, 1) זה תא A2.
וכן הלאה והלאהכתיבת לולאת "For" ראשונה
ניכנס שוב ל-Module שלנו (כמו שלמדנו: כרטיסיית מפתחים -> Visual Basic).

נכתוב מאקרו חדש שממלא את המספרים 1 עד 10 בעמודה הראשונה באופן אוטומטי.Sub MyFirstLoop() Dim i As Integer For i = 1 To 10 Cells(i, 1).Value = "שורה מספר " & i Next i End Subהסבר על הקוד:
כמובן שיש לנו את הבסיס שראינו כבר במדריך הראשוןSub MyFirstLoopהתחלה ושם המאקרו שבחרנו
End Subסיום המאקרו
זה פקודות הבסיס
עכשיו לפקודות הלולאה עצמה- קודם כל הגדרנו משתנה (כלי קיבול למספר)

Dim i As Integer- אח"כ פתחנו לולאה-ההוראה שלנו למחשב מה לעשות
For i = 1 To 10כאן למעשה אמרנו למחשב לקחת מ1 עד 10
3. וכאן הגענו לפעולה עצמהCells(i, 1).Valueבמקום לכתוב Range("A1") ואז היינו צריכים להמשיך לכתוב הלאה לכל תא כתבנו
Cells(i, 1).Valueכלומר: בפעם הראשונה שהלולאה רצה תכתוב לתא 1 בפעם השנייה תשנה את ה"I" שלו לתא 2
ותכתוב שם את ההוראה
4. וכאן מגיע ההמשךNext iכלומר: תמשיך לפעולה הבאה
כך זה יראה בממשק של VBA

וכך נקבל את התוצאה באקסל

כמובן שעכשיו אנחנו יכולים לשנות את הטקסט למה שנרצה לדוגמא:
Sub MyFirstLoop() Dim i As Integer For i = 1 To 10 Cells(i, 1).Value = "תלמיד מספר " & i Next i End Subלמעשה מה ששנינו זה
Cells(i, 1).Value = "תלמיד מספר " & iוהנה התוצאה

עכשיו למה זה רלוונטי?
נניח שהייתם צריכים לעשות רשימה\ טבלה
באופן רגיל הייתם צריכים לעבור תא תא עבודה סיזיפית וקשה
עכשיו אתם פשוט יכולים להריץ את המאקרו ולשנות לטקסט הרצוי
מה עושים אם רוצים שיהיה תנאי מסוים באחד התאים?
כלומר שבתא 7 יהיה הדגשה על התלמיד
אז אנחנו נעשה תנאי בלולאה אבל זה כבר למדריך אחר.. - קודם כל הגדרנו משתנה (כלי קיבול למספר)