החזרת ערך בוליאני המציין אם ארגומנט Variant אופציונלי הועבר לפרוצדורה.
תחביר
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