קורסי מיקרוסופט לארגונים – כרמל הדרכה

Microsoft Partner

קורס אקסל VBA – תנאי If

תוכן עניינים

עד כה התייחסנו ליצירת קוד, הפועל בתזרים ישר פקודה אחר פקודה. אך תרשים הזרימה של האלגוריתם יכול לכלול פיצולים של הרצף לפי בדיקות ותנאים

למשל, אם תנאי מסוים מתקיים ימשיך רצף פקודות אחד, אחרת ימשיך רצף פקודות שני. אחת מהפקודות המהוות תנאי ושינוי ברצף הפקודות היא If.

תנאי If היא שורת קוד המבצעת בדיקה מוגדרת. הבדיקה יכולה להחזיר את התוצאות True (התנאי מתקיים) או False (התנאי לא מתקיים) בלבד. למשל, האם ערך בתא מסוים גדול מ-90, לטובת בדיקת ציוני תלמידים, או האם שם המשתמש הוא David, לטובת בדיקת המשתמש שמפעיל את הקובץ.

מבנה If

מבנה הפקודה הוא סגור, כך שיכולות להיות פקודות לפני מבנה ה-If ואחריו. כלומר, במהלך הקוד ניתן לפתוח בדיקת תנאי שיגרום לרצף פקודות מתאים לאמת (התקיימות התנאי) או לרצף פקודות מתאים לשקר (אי-התקיימות התנאי), ועם סיום רצף הפקודות של התנאי, ניתן להמשיך עם רצף הפקודות המאוחד של הקוד.

להלן מבנה If:

אין חובה להגדיר רצף פקודות במקרה של False. במקרה זה, אין להגדיר Else ורצף פקודות שאחריו. לדוגמה:

הצורך בהגדרת End IF קיים רק אם אחרי Then או Else קיים בלוק של פקודות. אם מוגדרת רק פקודה אחת לביצוע מיד אחרי  Thenבהמשך אותה השורה, אין לציין End If. אם הפקודה האחת לביצוע כתובה בשורה מתחת לשורת ה-Then (או מספר פקודות) אז חובה לציין End If. לדוגמה:

בדוגמה הבאה ניתן לראות טבלת נבחנים והציונים שלהם:

מטרת הקוד הבא היא לצבוע באדום את הטבלה אם 40% ויותר מהנבחנים קיבלו פחות מ-60 בבחינה (כלומר, נכשלו):

GradesCount – משתנה שמוכנס לתוכו מספר הנבחנים בקורס. החישוב מתבצע באמצעות הפונקציה Count() ממאגר הפונקציות שבתוכנה.

  1. PassCount– משתנה שמוכנס לתוכו מספר הנבחנים שעברו את הציון 60. החישוב מתבצע באמצעות הפונקציה CountIf() ממאגר הפונקציות שבתוכנה.
  2. כדי לבדוק אם מספר הנבחנים שעברו את הציון 60 (PassCount) הוא גדול מ-40% מתוך כלל הנבחנים (GradesCount), מופיע תנאי If במבנה ללא Else. אם התנאי מתקיים צבע הרקע של כל התאים בטבלה יהיה אדום.

    ניתן לראות את תת האובייקט CurrentRegion שמסמן את כל התאים המצויים בטווח נתון, ובמקרה הנוכחי תא 1A. CurrentRegion שקול לפקודה המתקבלת בצירוף המקשים Ctrl + A בתוכנה, לאחר בחירת תא או טווח.

  3. בתא שנמצא שני תאים מתחת לתא האחרון בטבלה יוזן הביטוי Course Average.
  4. בתא שנמצא שלושה תאים מתחת לתא האחרון בטבלה יוזן הממוצע של ציוני הסטודנטים. החישוב מתבצע באמצעות הפונקציה Average() ממאגר הפונקציות שבתוכנה.

תוצאת הרצת הקוד על הטבלה הנתונה בדוגמה:

תנאי מקונן ו-ElseIf

כדי להוסיף בדיקה של תנאי נוסף, למקרה שתוצאת התנאי הראשי היא False, יש להחליף את הביטוי Else בביטוי ElseIf. ביטוי זה מתפקד כמבנה If פנימי (כלומר, בתוך מבנה ה-If הראשי), ובהתאם הוא מכיל את הביטויים Then, Else ו-End If (End If פנימי נדרש רק במקרה שלאחר התנאי ישנו רצף של יותר מפקודה אחת).

הדוגמה הבאה מרחיבה את התנאי שבדוגמה הקודמת: אם פחות מ-40% מהנבחנים קיבלו 60, כלומר תוצאת התנאי הראשי היא False, אז תתבצע בדיקה של תנאי נוסף – האם ממוצע הציונים של כל הנבחנים קטן מ-70. אם התשובה היא True אז הטבלה תצבע בצהוב. אם התשובה היא False, כלומר, אם ממוצע הציונים הכולל גדול מ-70 ופחות מ-40% מהתלמידים קיבלו פחות מ-60, לא יחול שום שינוי בטבלה.

GradesAverage – משתנה שמוכנס לתוכו ממוצע הציונים בקורס. החישוב מתבצע באמצעות הפונקציה Average() ממאגר הפונקציות שבתוכנה.

תוצאת הרצת הקוד על הטבלה הנתונה בדוגמה:

האופרטורים המתמטיים לבדיקת תנאי

<          גדול

=<        גדול או שווה

>          קטן

=>        קטן או שווה

=          שווה

<>        שונה

NOT    בודק אם תנאי אינו מתקיים. לדוגמא, התנאי If NOT Application.UserName = "Carmel" זהה לתנאי If Application.UserName <> "Carmel".

קורס אקסל VBA
תוכן עניינים
מלאו פרטים ונחזור אליכם בהקדם
למה לבחור בכרמל הדרכה?
אנחנו מציעים פתרונות איכותיים להדרכות מקצועיות שחוסכות לכם זמן ומשאבים, ומספקים לכם את הכלים לקחת את כישורי האקסל שלכם עוד צעד קדימה!
מרצים מובילים

בעלי ניסיון הדרכתי ומעשי עשיר

מגיעים אליכם

אתם קובעים את מיקום הקורס והמועד

תאוריה ותרגול

חומרי לימוד ומעבדות רשמיות של מיקרוסופט הזמינים בענן

תוכנית מותאמת

התאמה מלאה ואישית לדרישות ולצרכי הארגון

למדו מהמומחים שלנו
טיפ לשימוש ב- Excel VBA
קורס אקסל VBA – קבצים Excel VBA

הייתם רוצים לעזור למשתמשים לעבוד עם הקבצים שלכם ב-Excel באופן מסודר? לחייב אותם להזין מידע במקומות מוגדרים מראש, או להקפיץ להם התראות עם הנחיות בפתיחה או בסגירות הקובץ?

קרא עוד »
קורס אקסל VBA
קורס אקסל VBA – מרכז יחסי האמון ורמות אבטחה

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

קרא עוד »
קורס אקסל VBA
קורס אקסל VBA – הגנה ונעילה

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

קרא עוד »
קורס אקסל VBA
קורס אקסל VBA – אירועים

כזכור, שפת ה-VBA היא שפה מונחית אירועים. עד כה עסק מדריך זה באירוע של לחיצה יזומה להפעלת הקוד, אך יכולים להיות גם אירועים נוספים שמציתים את ריצת הקוד, כמו בחירה של תא, יצירת גיליון, סגירה של חוברת העבודה, שמירה וכו'. זו גם הסיבה שעד כה המדריך עסק בקוד ברמת המודול ולא ברמת הגיליון או חוברת העבודה, המצויים גם הם בחלונית הפרויקטים, כיוון שבאופן זה הקוד גמיש ויכול לרוץ על כל הגיליונות, ולא קשור לאיזשהו אירוע שמתרחש בחוברת העבודה.

קרא עוד »
קורס אקסל VBA
קורס אקסל VBA – מודול עריכה Class Module

Class Module הוא מודול עריכה נוסף ב-VBA (בשונה מהמודול הרגיל לעריכת פקודות שנידון עד כה), המשמש ליצירת אובייקט מסוג חדש. Collection של פריטים ניתן ליצור במודול רגיל, אולם ליצירה של אובייקטים מותאמים אישית חדשים של ממש ואיסופם אל תוך Collection מותאם אישית, יש לפתוח Class Module חדש.

קרא עוד »

מתחיל ב-06.06.2024

1 מפגש

16:00 - 09:00
Azure AI Fundamentals
דילוג לתוכן