VBA MsgBox نعم / لا | كيف يتم إنشاء استجابة نعم / لا؟

Excel VBA MsgBox (نعم / لا)

في VBA ، باستخدام مربع الرسالة ، يمكننا إنشاء مربع رسالة نعم لا يتم استخدامه لتسجيل إدخال المستخدم بناءً على النقر فوق نعم أو لا ، وبناء الجملة لجعل مربع رسالة نعم لا يكون كما يلي متغير = MsgBox ("نص" ، vbQuestion + vbYesNo + vbDefaultButton2 ، "عنوان صندوق الرسائل") حيث يجب التصريح عن المتغير كعدد صحيح.

غالبًا في ترميز VBA ، نحتاج إلى جمع قيم الإدخال من المستخدمين لأداء بعض المهام وإحدى هذه المهام لجمع استجابة "نعم" أو "لا" من المستخدمين. باستخدام طريقة VBA MsgBox Yes No ، يمكننا كتابة الكود للمضي قدمًا في الكود.

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

على سبيل المثال ، انظر إلى الصورة أدناه لـ MsgBox في VBA.

إذا قال المستخدم نعم "يمكننا كتابة رمز لأداء مهمة محددة" وإذا قال المستخدم "لا" ، فيمكننا كتابة رمز لأداء مجموعة أخرى من المهام.

كيف تعمل مع MsgBox Yes / No Response؟

يمكنك تنزيل VBA Message Box نعم أو لا قالب Excel هنا - VBA Message Box Yes أو No Excel Template

المثال رقم 1 - نسخ ولصق بناءً على الاستجابة

على سبيل المثال ، انظر إلى الكود أدناه.

رمز:

 Sub MessageBox_Yes_NO_Example1 () إجابة خافتة نعم كسلسلة إجابة خافتةلا كسلسلة إجابة نعم = MsgBox ("هل ترغب في النسخ؟"، vbQuestion + vbYesNo، "User Repsonse") If AnswerYes = vbYes ثم النطاق ("A1: A2"). نسخ النطاق ("C1") Else Range ("A1: A2"). نطاق النسخ ("E1") End If End Sub 

خاطئة:

أعلن ما سبق أن المتغير هو String ie

 إجابة خافتة نعم كسلسلة 

في السطر التالي ، قمنا بتعيين القيمة من خلال مربع الرسائل الذي يسأل "هل ترغب في النسخ؟".

AnswerYes = MsgBox ("هل ترغب في النسخ؟" ، vbQuestion + vbYesNo ، "رد المستخدم")

الآن IF تقوم عبارة IF بتقييم الاستجابة الواردة من خلال مربع الرسالة. إذا كانت نتيجة مربع الرسالة هي vbYes ، فسيتم نسخ النطاق A1 إلى A2 ولصقه في الخلية C1.

   If AnswerYes = vbYes ثم Range ("A1: A2"). Copy Range ("C1")

إذا كانت الاستجابة التي قدمها مربع الرسالة هي لا ، فسيتم نسخ النطاق A1 إلى A2 ولصقه في الخلية E1.

 النطاق الآخر ("A1: A2"). نطاق النسخ ("E1") End If 

حسنًا ، لقد أدخلت قيمًا قليلة في الخلية A1 و A2 الآن.

الآن سأقوم بتشغيل الكود باستخدام مفتاح F5 أو من خلال خيار التشغيل ، سيظهر مربع رسالة أمامي ويطلب ردي.

إذا قمت بالنقر فوق نعم ، فسيتم نسخ النطاق A1 إلى A2 ولصقه في خلية C1. الآن سأضغط على "نعم" وأرى النتيجة.

لذا فقد نفذت المهمة المعينة إذا كانت الاستجابة نعم.

الآن مرة أخرى سأقوم بتشغيل الكود.

هذه المرة سأختار "لا" وأرى ما سيحدث.

نعم ، لقد أنجزت المهمة المعينة في الكود أي

 النطاق الآخر ("A1: A2"). نطاق النسخ ("E1")

مثال # 2 - إخفاء وإلغاء إخفاء الأوراق بناءً على الاستجابة

سيخفي الكود أدناه جميع الأوراق باستثناء الورقة النشطة إذا كانت الإجابة بنعم.

رمز:

 Sub HideAll () إجابة خافتة كسلسلة خافتة كإجابة ورقة العمل = MsgBox ("هل ترغب في إخفاء الكل؟" ، vbQuestion + vbYesNo ، "إخفاء") If Answer = vbYes ثم لكل Ws في ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name ثم Ws.Visible = xlSheetVeryHidden التالي Ws ElseIf Answer = vbNo ثم MsgBox "لقد حددت عدم إخفاء الأوراق" ، vbInformation ، "No Hide" End If End Sub 

سيخفي الكود أعلاه جميع أوراق العمل باستثناء الورقة التي نحن فيها الآن إذا كانت الاستجابة من مربع الرسالة نعم.

إذا كان الرد من مربع الرسالة هو NO ، فسيتم عرض مربع الرسالة الذي يقول "لقد اخترت عدم إخفاء الأوراق".

وبالمثل ، سيظهر الكود أدناه الورقة إذا كانت الإجابة نعم.

رمز:

 Sub UnHideAll () إجابة Dim كـ String Dim Ws As Worksheet Answer = MsgBox ("هل ترغب في إظهار الكل؟"، vbQuestion + vbYesNo، "Hide") If Answer = vbYes ثم لكل Ws في ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden التالي Ws ElseIf Answer = vbNo ثم MsgBox "لقد حددت عدم إظهار الأوراق" ، vbInformation ، "No Hide" End If End Sub 

يعمل هذا تمامًا مثل رمز إخفاء الورقة ، إذا كانت الإجابة بنعم ، فسيتم إظهاره ، وإذا كان الجواب لا ، فلن يظهر.


$config[zx-auto] not found$config[zx-overlay] not found