החזרת ערך בוליאני המציין אם משתנה ארגומנט הועבר ל- הליך.
תחביר
IsMissing( argname )
ארגומנט argname הנדרש מכיל את השם של ארגומנט פרוצדורת משתנה אופציונלי.
הערות
השתמש בפונקציה IsMissing כדי לזהות אם סופקו ארגומנטים אופציונליים של משתנה בעת קריאה לפרוצדורה. IsMissing מחזירTrue אם לא הועבר ערך עבור הארגומנט שצוין; אחרת, הוא מחזיר False. אם IsMissingמחזיר True עבור ארגומנט, השימוש בארגומנט החסר בקוד אחר עלול לגרום לשגיאה המוגדרת על-ידי המשתמש. אם IsMissing נמצא בשימוש בארגומנט ParamArray , הוא תמיד מחזיר False. כדי לזהות ParamArray ריק, בדוק אם הגבול העליון של המערך קטן מהגבול התחתון שלו.
הערה: IsMissing אינו פועל בסוגי נתונים פשוטים (כגון מספר שלם או כפול) מאחר שבניגוד למשתנים, אין להם הקצאה עבור סיבית דגל "חסרה". לכן, התחביר עבור ארגומנטים אופציונליים מוקלדה מאפשר לך לציין ערך ברירת מחדל. אם הארגומנט מושמט בעת קריאה לפרוצדורה, לארגומנט יהיה ערך ברירת מחדל זה, כמו בדוגמה שלהלן:
הערה: הדוגמאות הבאות מדגימות את השימוש של פונקציה זו במודול Visual Basic for Applications (VBA). לקבלת מידע נוסף אודות עבודה עם VBA, בחר הפניית מפתח ברשימה הנפתחת שליד חיפוש והזן מונח אחד או יותר בתיבת החיפוש.
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then ' MyVar was omitted. Else ... End Sub
במקרים רבים באפשרותך להשמיט את בדיקת If MyVar לחלוטין על-ידי הפיכת ערך ברירת המחדל לערך שברצונך ש- MyVar יכיל אם המשתמש ישמיט אותו מהשיחה לפונקציה. פעולה זו הופכת את הקוד שלך לת תמציתי ויעיל יותר.
דוגמה
דוגמה זו משתמשת בפונקציה IsMissing כדי לבדוק אם ארגומנט אופציונלי הועבר לפרוצדורה המוגדרת על-ידי המשתמש. שים לב שארגומנטים אופציונליים יכולים כעת לכלול ערכי ברירת מחדל וסוגים שאינם Variant.
Dim ReturnValue
' The following statements call the user-defined ' function procedure. ReturnValue = ReturnTwice() ' Returns Null. ReturnValue = ReturnTwice(2) ' Returns 4. ' Function procedure definition. Function ReturnTwice(Optional A) If IsMissing(A) Then ' If argument is missing, return a Null. ReturnTwice = Null Else ' If argument is present, return twice the value. ReturnTwice = A * 2 End If End Function