ترجع قيمة منطقية تشير إلى ما إذا تم تمرير وسيطة متغير اختياري إلى إجراء ما أم لا.
بناء الجملة
IsMissing(argname)
تحتوي وسيطة argname المطلوبة على اسم وسيطة إجراء متغير اختياري.
ملاحظات
استخدم الدالة IsMissing للكشف عما إذا كانت وسيطات Variant الاختيارية متوفرة أم لا في استدعاء الإجراء. تقوم 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 للتحقق مما إذا تم تمرير وسيطة اختيارية إلى إجراء معرف من قبل المستخدم. لاحظ أنه يمكن أن يكون للوسيطات الاختيارية الآن قيم وأنواع افتراضية غير المتغير.
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