300 أمثلة

Userform التفاعلي

Interactive Userform

أدناه سوف ننظر في برنامج في برنامج Excel VBA هذا يخلق Userform التفاعلي . Userform الذي سننشئه على النحو التالي:



ملف مستخدم Excel VBA التفاعلي

توضيح: كلما أدخلت قيمة في مربع نص المعرف ، يقوم Excel VBA بتحميل السجل المقابل. عند النقر فوق الزر تحرير / إضافة ، يقوم Excel VBA بتحرير السجل على الورقة أو إضافة السجل عندما لا يكون المعرف موجودًا بعد. يقوم الزر 'مسح' بمسح كافة مربعات النص. يقوم الزر 'إغلاق' بإغلاق Userform.





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

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



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

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

3. أضف التسميات ومربعات النص (أولاً في الأعلى ، والثاني أسفل الأول ، وهكذا) وأزرار الأوامر. بمجرد اكتمال ذلك ، يجب أن تكون النتيجة متسقة مع صورة Userform الموضحة سابقًا. على سبيل المثال ، قم بإنشاء عنصر تحكم مربع نص بالنقر فوق TextBox من Toolbox. بعد ذلك ، يمكنك سحب مربع نص في Userform.

كيفية إضافة قائمة منسدلة في Excel 2010

4. يمكنك تغيير الأسماء والتعليقات التوضيحية من عناصر التحكم. يتم استخدام الأسماء في رمز Excel VBA. التسميات التوضيحية هي تلك التي تظهر على شاشتك. يُعد تغيير أسماء عناصر التحكم ممارسة جيدة ، ولكن هذا ليس ضروريًا هنا لأن لدينا عددًا قليلاً من عناصر التحكم في هذا المثال. لتغيير التسمية التوضيحية للتسميات ومربعات النص وأزرار الأوامر ، انقر فوق 'عرض' و 'نافذة الخصائص' وانقر فوق كل عنصر تحكم.

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

نشر الفرعيةCommandButton1_Click ()

UserForm1.Show

نهاية الفرعية

سنقوم الآن بإنشاء Sub UserForm_Initialize. عند استخدام الأسلوب Show لـ Userform ، سيتم تنفيذ هذا الفرعي تلقائيًا.

6. افتح ملف محرر Visual Basic .

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

8. اختر Userform من القائمة المنسدلة اليسرى. اختر تهيئة من القائمة المنسدلة اليمنى.

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

نشر الفرعيةUserForm_Initialize ()

TextBox1.SetFocus

نهاية الفرعية

شرح: يحدد سطر الكود هذا التركيز على مربع النص الأول لأن هذا هو المكان الذي نريد أن نبدأ فيه عند تحميل Userform.

لقد أنشأنا الآن الجزء الأول من Userform. على الرغم من أنه يبدو أنيقًا بالفعل ، فلن يحدث شيء حتى الآن عندما نقوم بإدخال قيمة في مربع نص المعرف أو عند النقر فوق أحد أزرار الأوامر.

10. في Project Explorer ، انقر بزر الماوس الأيمن فوق UserForm1 ثم انقر فوق 'عرض الرمز'.

11. اختر TextBox1 من القائمة المنسدلة اليسرى. اختر تغيير من القائمة المنسدلة اليمنى.

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

نشر الفرعيةTextBox1_Change ()

احصل على البيانات

نهاية الفرعية

13. في Project Explorer ، انقر نقرًا مزدوجًا فوق UserForm1.

14. انقر نقرًا مزدوجًا فوق زر أمر تحرير / إضافة.

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

نشر الفرعيةCommandButton1_Click ()

تحرير

نهاية الفرعية

16. انقر نقرًا مزدوجًا فوق زر أمر Clear.

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

نشر الفرعيةCommandButton2_Click ()

شكل واضح

نهاية الفرعية

شرح: هذه الغواصات تستدعي الغواصات الأخرى التي سننشئها في ثانية.

18. انقر نقرًا مزدوجًا فوق زر الأمر 'إغلاق'.

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

نشر الفرعيةCommandButton3_Click ()

تفريغ لي

نهاية الفرعية

شرح: يغلق سطر الكود هذا Userform.

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

20. أولاً ، قم بتعريف ثلاثة متغيرات من النوع Integer ومتغير واحد من النوع Boolean. قم بتعريف المتغيرات في قسم الإعلانات العامة (في الجزء العلوي من الوحدة النمطية). بهذه الطريقة عليك فقط التصريح عن المتغيرات مرة واحدة ويمكنك استخدامها في عدة غواصات.

لا أحدهوية شخصيةكما عدد صحيح، أناكما عدد صحيح، يكما عدد صحيح، علمكما قيمة منطقية

21. إضافة GetData الفرعية.

الفرعيةاحصل على البيانات()

لوIsNumeric (UserForm1.TextBox1.Value)ثم
العلم =خاطئة
أنا = 0
معرف = UserForm1.TextBox1.Value

يفعل في حينالخلايا (i + 1، 1). القيمة ''

لوالخلايا (i + 1، 1) .Value = idثم
العلم =حقيقي
لي = 2إلى3
UserForm1.Controls ('TextBox' & j) .Value = Cells (i + 1، j) .Value
التاليي
نهاية لو

أنا = أنا + 1

حلقة

لوالعلم =خاطئة ثم
لي = 2إلى3
UserForm1.Controls ('TextBox' & j) .Value = '
التاليي
نهاية لو

آخر
شكل واضح
نهاية لو

نهاية الفرعية

توضيح: إذا كان مربع نص المعرف يحتوي على قيمة رقمية ، يبحث Excel VBA عن المعرف ويقوم بتحميل السجل المقابل. نحن نستخدم ال مجموعة الضوابط للتنقل بين مربعات النص بسهولة. إذا تعذر على Excel VBA العثور على المعرف (لا تزال العلامة False) ، فإنه يفرغ مربع النص الثاني والثالث. إذا كان مربع نص المعرف لا يحتوي على قيمة رقمية ، يقوم Excel VBA باستدعاء الفرع الفرعي ClearForm.

22. إضافة ClearForm الفرعية.

الفرعيةشكل واضح()

لي = 1إلى3
UserForm1.Controls ('TextBox' & j) .Value = '
التاليي

نهاية الفرعية

Explanation: يقوم Excel VBA بمسح كل مربعات النص.

23. إضافة EditAdd الفرعية.

الفرعيةتحريرإضافة ()

لا أحدفارغكما طويل

لوUserForm1.TextBox1.Value ''ثم
العلم =خاطئة
أنا = 0
معرف = UserForm1.TextBox1.Value
blankRow = WorksheetFunction.CountA (المدى ('A: A')) + 1

يفعل في حينالخلايا (i + 1، 1). القيمة ''

لوالخلايا (i + 1، 1) .Value = idثم
العلم =حقيقي
لي = 2إلى3
الخلايا (i + 1، j) .Value = UserForm1.Controls ('TextBox' & j) .Value
التاليي
نهاية لو

أنا = أنا + 1

حلقة

لوالعلم =خاطئة ثم
لي = 1إلى3
الخلايا (blankRow، j) .Value = UserForm1.Controls ('TextBox' & j) .Value
التاليي
نهاية لو

نهاية لو

نهاية الفرعية

توضيح: إذا لم يكن مربع نص المعرف فارغًا ، يقوم Excel VBA بتحرير السجل على الورقة (على عكس تحميل سجل كما رأينا سابقًا). إذا تعذر على Excel VBA العثور على المعرف (لا تزال العلامة False) ، فإنه يضيف السجل إلى الصف الفارغ التالي. المتغير blankRow هو أول صف فارغ ويزيد في كل مرة يتم فيها إضافة سجل.

24. قم بإنهاء محرر Visual Basic ، وأدخل التسميات الموضحة أدناه في الصف 1 واختبر Userform.

كيفية القيام بوظيفة vlookup

ملف مستخدم Excel VBA التفاعلي

11/11 اكتمل! تعرف على المزيد حول نماذج المستخدم>
انتقل إلى الفصل التالي: نطاق



^