/ / مؤشر التقدم في Excel VBA

مؤشر التقدم في Excel VBA

أدناه سننظر في برنامج في Excel VBA هذا يخلق مؤشر التقدم. لقد أبقينا على مؤشر التقدم بسيطًا قدر الإمكان ، ومع ذلك يبدو محترفًا. هل أنت مستعد؟

شكل المستخدم الذي سنقوم بإنشائه يبدو كما يلي:

مؤشر التقدم في Excel VBA

لإنشاء Userform ، قم بتنفيذ الخطوات التالية.

1. افتح محرر Visual Basic. إذا لم يكن Project Explorer مرئياً ، فانقر فوق View ، Project Explorer.

2. انقر فوق Insert ، Userform. إذا لم يظهر Toolbox تلقائيًا ، فانقر فوق View ، Toolbox. يجب إعداد الشاشة على النحو التالي.

إعداد شاشة Userform في Excel VBA

يتكون Userform هذا فقط من ثلاثة عناصر تحكم. تحكم في الإطار وعناصر تحكم في العنصرين.

3. أضف التحكم في الإطار. يمكنك القيام بذلك عن طريق النقر فوق الإطار من Toolbox. بعد ذلك ، يمكنك سحب عنصر تحكم إطار في Userform. تحتاج إلى تغيير بعض خصائص عنصر التحكم هذا الإطار. انقر بزر الماوس الأيمن فوق عنصر تحكم الإطار ، ثم انقر فوق خصائص. إفراغ حقل التسمية التوضيحية ، قم بتعيين الارتفاع إلى 24 والعرض إلى 204.

4. إضافة عنصر تحكم التسمية الأول ووضعه في عنصر تحكم الإطار. انقر بزر الماوس الأيمن فوق عنصر تحكم التسمية ، ثم انقر فوق خصائص. تغيير الاسم إلى شريط ، BackColor إلى Highlight ، تفريغ حقل Caption ، قم بتعيين الارتفاع إلى 20 والعرض إلى 10.

5. إضافة عنصر تحكم التسمية الثاني ووضعه فوق عنصر تحكم الإطار. انقر بزر الماوس الأيمن فوق عنصر تحكم التسمية ، ثم انقر فوق خصائص. قم بتغيير الاسم إلى نص وقم بتغيير التسمية التوضيحية إلى "0٪ مكتمل".

6. تغيير التسمية التوضيحية لمؤشر تقدم إلى مؤشر التقدم.

بمجرد اكتمال ذلك ، يجب أن تكون النتيجة متوافقة مع صورة Userform المعروضة سابقًا.

7. ضع زر أمر في ورقة العمل الخاصة بك وقم بإضافة سطر التعليمة البرمجية التالية لإظهار Userform:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

إذا كنت قد مرت من خلال Userform الآخرأمثلة على هذا الموقع ، تعلم أن هذا هو الوقت لإنشاء Sub UserForm_Initialize. هذا الفرعي يعمل تلقائيا كلما تم تحميل Userform. وبالتالي ، عند استخدام طريقة إظهار Userform ، سيتم تنفيذ التعليمة البرمجية تلقائيًا. بدلاً من Sub UserForm_Initialize ، نقوم بإنشاء Sub UserForm_Activate. باستخدام هذا البرنامج الفرعي ، يمكن لـ Excel VBA تحديث Userform لإظهار تقدم الماكرو.

8. افتح محرر Visual Basic.

9. في Project Explorer ، انقر بزر الماوس الأيمن فوق UserForm1 ، ثم انقر فوق عرض التعليمات البرمجية.

10. اختر Userform من القائمة المنسدلة اليسرى. اختر التنشيط من القائمة المنسدلة اليمنى.

11. أضف سطر الرمز التالي:

Private Sub UserForm_Activate()

code

End Sub

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

12. ضع sub المسمى التعليمة البرمجية في وحدة نمطية (في Visual Basic Editor ، انقر فوق إدراج ، الوحدة النمطية). هذا مجرد مثال. هذا هو المكان المناسب لإضافة الرمز الخاص بك عندما تريد استخدام مؤشر التقدم هذا للماكرو الخاص بك. يبدو الرمز كما يلي.

Sub code()

Dim i As Integer, j As Integer, pctCompl As Single

Sheet1.Cells.Clear

For i = 1 To 100
    For j = 1 To 1000
        Cells(i, 1).Value = j
    Next j
    pctCompl = i
    progress pctCompl
Next i

End Sub

شرح: أولا ، نحن تهيئة بعض المتغيرات. بعد ذلك ، نمسح الورقة 1. نستخدم حلقة مزدوجة لعرض القيم من 1 إلى 1000 في أول 100 صف من ورقة العمل. هذا سيجعل Excel VBA مشغولاً لفترة من الوقت ويعطينا الفرصة لمشاهدة تقدم الماكرو. يقيس المتغير pctCompl (اختصار لنسبة مئوية) التقدم في الماكرو. وأخيرًا ، نطلق على اسم فرعي آخر باسم التقدم ونمرر قيمة متغير pctCompl لتحديث نموذج Userform. بهذه الطريقة يمكننا أن نرى تقدم الماكرو!

13. إضافة فرعية أخرى تسمى التقدم. يبدو الرمز كما يلي:

Sub progress(pctCompl As Single)

UserForm1.Text.Caption = pctCompl & "% Completed"
UserForm1.Bar.Width = pctCompl * 2

DoEvents

End Sub

Explanation: سطر التوليف الأول يقوم بتغيير التسمية التوضيحية لعنصر تحكم التسمية الأول. تغيير سطر الرمز الثاني عرض عنصر تحكم تسمية الثاني. أضف DoEvents لتحديث Userform.

14. قم بإنهاء محرر Visual Basic وانقر فوق زر الأمر الموجود على الورقة:

نتيجة:

تقدم المؤشر النتيجة

ملحوظة: لهذا الماكرو ، استخدمنا المتغير ط لقياس التقدم. على سبيل المثال ، في الصف 11 ، اكتمال 10٪. قد يكون هذا مختلفًا عن الماكرو الخاص بك. تظل تقنية تمرير قيمة متغير pctCompl إلى التقدم الفرعي لتحديث Userform كما هي.

اقرأ أيضًا: