كيفية استخدام do while loop في vba؟

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

في كل تكرار، يقوم باختبار الحالة وعندها فقط ينفذ التعليمات. تخيل أنك تريد إضافة أوراق عمل في Excel ولكن العدد الكامل لأوراق العمل هو 12 أو أقل. في هذه الحالة، يمكنك استخدام حلقة do-while لكتابة هذا الرمز.

بناء الجملة

فيما يلي بناء جملة VBA لكل حلقة لاحقة.

 Do While Condition [statements] Loop
بيان حالة vba-do-while-loop
  1. الشرط: هذا هو الشرط الذي تحدده، ويجب أن يكون هذا الشرط صحيحًا لتنفيذ الحلقة.
  2. البيان : سطر (أسطر) التعليمات البرمجية التي تريد أن تنفذ حلقة Do while الشرط عليها صحيح.
  3. الحلقة : هذه هي العبارة النهائية لتكرار الحلقة وتطلب من VBA العودة لاختبار الحالة مرة أخرى.

مثال لفهم حلقة DO while

لفهم Do while Loop، دعنا نكتب رمزًا لإضافة أوراق عمل إلى مصنف عندما يكون إجمالي عدد أوراق العمل أقل من اثني عشر. لا تحتاج إلى إخبار VBA بعدد الأوراق التي تريد إضافتها وسيكون لديك دائمًا إجمالي 12 ورقة في كل مرة تقوم فيها بتشغيل هذا الرمز.

استخدم الخطوات التالية:

  1. أولا وقبل كل شيء، تحتاج إلى كتابة “Do while” على لوحة المفاتيح.
    type-the-keyword-do-while
  2. بعد ذلك، تحتاج إلى كتابة شرط يمكنه التحقق مما إذا كان إجمالي عدد أوراق العمل في المصنف أقل من اثني عشر.
  3. للقيام بذلك، تحتاج إلى استخدام الكود أدناه، الذي يحسب العدد الإجمالي لأوراق العمل ثم يقارنه بالرقم اثني عشر.
    condition-to-check-worksheets
  4. بعد ذلك، تحتاج إلى كتابة التعليمات البرمجية لإضافة ورقة عمل. سيتم تشغيل هذا الرمز عندما يكون الشرط الذي حددته صحيحًا.
    code-to-add-worksheet
  5. وفي النهاية، اكتب الكلمة الأساسية “Loop” لإكمال الرمز.
    type-loop-to-end-the-code

إليك الكود الكامل الذي كتبته للتو:

 Sub vba_do_while_loop() Do While ActiveWorkbook.Worksheets.Count < 12 Sheets.Add Loop End Sub

الآن اسمحوا لي أن أشرح كيفية عمل هذا الرمز: يتحقق الشرط الذي حددته من العدد الإجمالي لأوراق العمل في المصنف، ومن ثم يكون لديك عامل تشغيل أقل من يتحقق من عدد أوراق العمل مقابل اثنتي عشرة ورقة.

عندما يكون عدد أوراق العمل أقل من اثنتي عشرة، ستستمر الحلقة في العمل وستستمر في إضافة أوراق عمل جديدة، ولكن بمجرد أن يصل عدد أوراق العمل إلى اثنتي عشرة، ستتوقف الحلقة.

هذا يعني بعبارات بسيطة أن الحلقة ستستمر في العمل طالما أن عدد أوراق العمل أقل من اثني عشر.

افعل بينما مثال على الحلقة

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

اصنع حلقة ل

Do Loop while هي نسخة موسعة من Do while Loop حيث أنها تعمل بنفس الطريقة ولكن هناك اختلاف بسيط عند اختبار الحالة.

في Do Loop أثناء تشغيل تكرار واحد للحلقة قبل اختبار الشرط الذي حددته وإذا كان الشرط صحيحًا فسوف يستمر في التكرار.

لنفترض أنك تريد كتابة بعض التعليمات البرمجية للتحقق من كلمة المرور لتشغيل بعض التعليمات البرمجية ومتابعة التكرار بينما تكون كلمة المرور غير صحيحة (نرى هذا في المثال).

بناء الجملة

فيما يلي بناء جملة VBA Do Loop while.

بناء جملة لـ vba-do-loop-while
  1. افعل: هذه هي الكلمة الأساسية لبدء حلقة Do while.
  2. البيان: هذا هو السطر (السطر) من التعليمات البرمجية التي تريد تشغيلها في الحلقة.
  3. التكرار أثناء التكرار: هذه هي الكلمة الأساسية لمواصلة التكرار واختبار الحالة التي حددتها.
  4. الحالة: هذا هو الشرط الذي تريد اختباره قبل أن تبدأ الحلقة التكرار الثاني وتستمر في الحلقة.

كما ترون في بناء جملة Do Loop while، فإنه سيقوم أولاً بتنفيذ العبارة مرة واحدة، ثم ينتقل إلى الشرط ويختبره، وإذا كان هذا الشرط صحيحًا، فإنه سيبدأ الحلقة ويستمر فيها بينما يكون الشرط حقيقي.

مثال لفهم حلقة DO while

لفهم حلقة do while، دعنا نكتب بعض التعليمات البرمجية لعرض مربع الإدخال ونطلب من المستخدم إدخال كلمة المرور.

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

  1. أولاً، أعلن عن متغيرين تحتاج إلى تخزين كلمة المرور ومحاولة العداد.
    declare-two-variables-you-need-for-storing
  2. بعد ذلك، اكتب الكلمة الأساسية “افعل”. هنا لا تحتاج إلى تحديد الشرط أولاً كما رأيت في بناء الجملة.
    type-the-do-keyword
  3. بعد ذلك، تحتاج إلى كتابة سطر من التعليمات البرمجية لعرض مربع الإدخال الذي يطلب من المستخدم إدخال كلمة المرور.
    write-a-line-of-code
  4. من هنا تحتاج إلى تعيين عداد يمكنه العد حتى خمسة (يضاف مع كل تكرار للحلقة).
    define-a-counter
  5. الآن اكتب الكلمة الأساسية “Loop while” وقم بتعيين شرطين يمكنهم التحقق من القيمة التي أدخلها المستخدم وفي مربع الإدخال ويمكنهم اختبار قيمة العداد إذا كانت أقل من 5.
    type-keyword-loop-while-and-define-two-condition
  6. وفي النهاية اكتب الكود الذي تريد تشغيله. أنا هنا أستخدم بيان IF الذي سيعرض مربع رسالة إذا كانت كلمة المرور التي أدخلها المستخدم صحيحة.
    write-the-code-you-want-to-run
 Sub vba_do_loop_while() Dim varPassword As Variant, i As Double Do varPassword = InputBox _ ("Enter the password to start the procedure:", _ "Check Password 1.0") i = i + 1 Loop While varPassword <> "CorrectPassword" And i < 5 If varPassword = "CorrectPassword" Then MsgBox "Your Password is Correct" End If End Sub

اسمحوا لي أن أشرح لك هذا الرمز.

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

اضف تعليق

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