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