كيفية استخدام بيان الخيار الصريح في vba؟

النقاط الرئيسية

  • يتطلب الخيار الصريح منك الإعلان عن كافة المتغيرات .
  • هذا إعلان يمكنك استخدامه في بداية الوحدة .
  • يمكنك إدخاله يدويًا أو تمكينه من الخيارات.
  • يجب عليك استخدام Option Explicit مرة واحدة فقط.
  • كما يساعدك أيضًا على تحديد الأخطاء المطبعية عند استخدام المتغيرات.

ما هو خيار VBA الصريح

Option Explicit عبارة عن عبارة يمكنك استخدامها في بداية الوحدة النمطية لإجبارك على الإعلان عن كافة المتغيرات. عند إضافة هذا البيان، يظهر لك VBA خطأ في الترجمة عند تشغيل التعليمات البرمجية ويسلط الضوء أيضًا على المتغير الموجود في التعليمات البرمجية الذي تحتاج إلى الإعلان عنه.

vba-الخيار-explicit

عند إضافة خيار صريح في بداية الوحدة النمطية، يضيف VBA خطًا فاصلًا أسفله، ومن ثم يمكنك البدء في كتابة الإجراء. وعندما يكون لديك خيار الإعلان الصريح وتقوم بتشغيل إجراء، يتحقق VBA من وجود متغير غير معلن ويظهر لك رسالة خطأ.

 Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
vba-إضافة خط فاصل

أعلاه هي الرسالة التي تحصل عليها عندما لا يتم الإعلان عن متغير.

تمكين الخيار الصريح في VBA

لتمكين بيان الخيار الصريح في وحدة نمطية، اتبع الخطوات التالية.

  1. أولاً، افتح محرر Visual Basic، ومن القائمة “أدوات”، انقر فوق “خيارات”.
    activate-option-explicit-in-vba
  2. بعد ذلك، في الخيارات، انتقل إلى علامة التبويب “المحرر” وحدد المربع “يتطلب إعلان المتغير”.
    editor-tab-and-tick-mark
  3. في النهاية، انقر فوق موافق.
  4. بمجرد القيام بذلك، سيضيف VBA خيارًا صريحًا في كل مرة تقوم فيها بإضافة وحدة نمطية جديدة.

لكنه لا يضيف هذا التصريح إلى وحدتك الحالية، لذا يتعين عليك إضافتها يدويًا إلى كل وحدة من الوحدات الموجودة واحدة تلو الأخرى.

كيفية إضافته يدويا؟

كما ذكرت، يجب أن تأتي عبارة Option Explicit قبل إجراء الوحدة الأولى (Sub أو Function). لذلك تحتاج إلى إضافة هذا الإقرار فوق الإجراء الأول (منطقة الإقرارات العامة) وتأكد من إضافته مرة واحدة فقط.

منطقة التصريحات العامة

إذا قمت بإضافته داخل إجراء أو بين إجراءين، فسيظهر لك VBA خطأً عند محاولة تنفيذ أي من أكواد الوحدة النمطية.

vba-سوف يظهر لك خطأ

أمثلة (لماذا يعد استخدام بيان الخيار الصريح عادة جيدة)

اسمح لي أن أعرض لك مثالاً يوضح لك سبب التوصية بشدة باستخدام عبارة Option Explicit. انظر إلى الكود التالي.

 Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

في هذا الكود، قمت بتعريف المتغير “myText” كسلسلة ثم قمت بتعيين قيمة هذا المتغير. وفي النهاية، استخدمت مربع رسالة يعرض قيمة المتغير، ولكن إذا نظرت عن كثب، فقد أخطأت في كتابة هذا المتغير كـ “MyTxt” بدلاً من “myText”.

المتغير المعلن

الآن عندما أقوم بتشغيل هذا الكود يظهر لي مربع رسالة فارغ.

مربع رسالة فارغ

أحتاج إلى دقيقتين لمساعدتك في فهم المشكلة الحقيقية هنا. عندما كتبت اسم المتغير بشكل خاطئ، يأخذه VBA كمتغير منفصل، وبما أنني لا أستخدم عبارة الخيار الصريح، فإنه لا يظهر لي خطأ.

خطأ مطبعي في اسم المتغير

ولهذا السبب يستخدم مربع الرسالة المتغير الثاني (الذي تمت كتابته بشكل خاطئ) والذي لم يتم تعيين قيمة له. الآن فكر للحظة؛ إذا كتبت تعليمات برمجية طويلة ولم تستخدم عبارات الخيارات الصريحة، فسيكون من الصعب تتبع هذا الخطأ حتى تعيد قراءة التعليمات البرمجية بالكامل.

ولكن مع تشغيل خيار الإعلان الصريح، عندما أقوم بتشغيل هذا الرمز، أحصل على خطأ.

استخدام الخيار صريح
 Option Explicit Sub myMacro() Dim myText As String myText = "Puneet" MsgBox MyTxt End Sub

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *