كيفية استخدام بيان الخيار الصريح في vba؟
النقاط الرئيسية
- يتطلب الخيار الصريح منك الإعلان عن كافة المتغيرات .
- هذا إعلان يمكنك استخدامه في بداية الوحدة .
- يمكنك إدخاله يدويًا أو تمكينه من الخيارات.
- يجب عليك استخدام Option Explicit مرة واحدة فقط.
- كما يساعدك أيضًا على تحديد الأخطاء المطبعية عند استخدام المتغيرات.
ما هو خيار VBA الصريح
Option Explicit عبارة عن عبارة يمكنك استخدامها في بداية الوحدة النمطية لإجبارك على الإعلان عن كافة المتغيرات. عند إضافة هذا البيان، يظهر لك VBA خطأ في الترجمة عند تشغيل التعليمات البرمجية ويسلط الضوء أيضًا على المتغير الموجود في التعليمات البرمجية الذي تحتاج إلى الإعلان عنه.
عند إضافة خيار صريح في بداية الوحدة النمطية، يضيف VBA خطًا فاصلًا أسفله، ومن ثم يمكنك البدء في كتابة الإجراء. وعندما يكون لديك خيار الإعلان الصريح وتقوم بتشغيل إجراء، يتحقق VBA من وجود متغير غير معلن ويظهر لك رسالة خطأ.
Option Explicit Sub myMacro() a = 50 MsgBox a End Sub
أعلاه هي الرسالة التي تحصل عليها عندما لا يتم الإعلان عن متغير.
تمكين الخيار الصريح في VBA
لتمكين بيان الخيار الصريح في وحدة نمطية، اتبع الخطوات التالية.
- أولاً، افتح محرر Visual Basic، ومن القائمة “أدوات”، انقر فوق “خيارات”.
- بعد ذلك، في الخيارات، انتقل إلى علامة التبويب “المحرر” وحدد المربع “يتطلب إعلان المتغير”.
- في النهاية، انقر فوق موافق.
- بمجرد القيام بذلك، سيضيف VBA خيارًا صريحًا في كل مرة تقوم فيها بإضافة وحدة نمطية جديدة.
لكنه لا يضيف هذا التصريح إلى وحدتك الحالية، لذا يتعين عليك إضافتها يدويًا إلى كل وحدة من الوحدات الموجودة واحدة تلو الأخرى.
كيفية إضافته يدويا؟
كما ذكرت، يجب أن تأتي عبارة Option Explicit قبل إجراء الوحدة الأولى (Sub أو Function). لذلك تحتاج إلى إضافة هذا الإقرار فوق الإجراء الأول (منطقة الإقرارات العامة) وتأكد من إضافته مرة واحدة فقط.
إذا قمت بإضافته داخل إجراء أو بين إجراءين، فسيظهر لك 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
الدروس ذات الصلة
- قم بتعريف متغير عمومي (عام) في VBA
- استخدم نطاقًا أو خلية كمتغير في VBA
- متغير في مربع الرسالة
- VBA ثابت
- تعليمات خافتة VBA