התקשרו אלינו: 052-2928949
ימים א'-ה' בין השעות 9:00-17:00

התקשרו אלינו: 052-2928949 א-ה 9:00-17:00

Select Case

VBA Tip

Select Case

VBA Tip

הפונקציה Select Case, בדומה לפונקציה IF, היא פונקציה לוגית.
היא יעילה במיוחד במצבים שבהם יש תנאים מרובים, ומונעת כתיבת פונקצית IF מקוננת ומסובכת.
התחביר של הפונקציה הוא:

Select Case TestExpression
   Case condition_1
     Result_1
   Case condition_2
     Result_2
   Case condition_3
     Result_3
   Case condition_n
     Result_n
   Case Else
     Result_Else
 End Select

 

TestExpression:

הביטוי הנבדק.
הביטוי יכול להיות ערך מספרי או מחרוזת והוא נבדק עבור כל מקרה (case) על פי סדר הכתיבה (מלמעלה למטה)

Conditions:

התנאי הנבדק. זהו ביטוי חשבוני, שתוצאתו יכולה להיות אמת או שקר (תוכלו לקרוא על כך בפירוט במאמר על IF)

Results:

כאן נוכל לכתוב קטע קוד שיורה לעורך איזו פקודה לבצע, בעת שהביטוי מקבל ערך TRUE.
אם הביטוי והתנאי תואמים, מוחזרת התוצאה הרלוונטית.
אם אף אחד מהתנאים לא תואם, תוצג התוצאה שכתובה ב Case Else (אם הוגדרה)

בואו נבחן מספר דוגמאות

הקוד הבא בוחן את שמו של איש המכירות (כלומר – בדיקה של מחרוזת טקסט) ומשייך אליו את מספר העובד.

Select Case SalesPerson
   Case “Yael”
      SalesPersonId = 121
   Case “Libby”
      SalesPersonId = 122
   Case “Mai”
      SalesPersonId = 123
   Case “Roy”
      SalesPersonId = 124
   Case “Amit”
      SalesPersonId = 125
 End Select

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

Select Case EmployeeId
   Case 1 to 199
      Disc= 0
   Case 200 to 499
      Disc= 0.05
   Case 500 to 1000
      Disc= 0.07
   Case 1001 to 1500
      Disc= 0.09
   Case Else
      Disc= 0.1
End Select

ועוד דוגמה:

Select Case Team_Id
    Case 11, 12
      Manager_Id = M11
    Case 13, 16, 17
      Manager_Id = M12
    Case 14, 15
      Manager_Id = M13
End Select

בדוגמה שלעיל Team_ID הוא הביטוי הנבדק.
אם הוא תואם לאחד מהערכים המופיעים ברשימה, אזי יוחזר ה Manager_ID התואם.
וזה אפילו הולך ונעשה יותר טוב. ראו מה עוד מאפשר Select Case

 Select Case Score
   Case Is <= 33
     MyResult = “Poor”
   Case Is <= 75
     MyResult = “Average”
   Case Else
     MyResult = “Distinction”
 End Select

בדוגמה שלעיל Score הוא הביטוי הנבדק.
אם התוצאה נופלת באחד הטווחים המצוינים, יוגדר המשתנה MyResult בהתאם.

ולסיום, אפשר גם לשלב תנאים, כפי שתראו בדוגמה הבאה:

Select Case Range (“A5”).Value
  Case 100 to 200, 202, 205 to 399
    MyColor = “Orange”
  Case Else
    MyColor = “Brown”
 End Select

דילוג לתוכן