4 أخطاء يجب تجنبها عند برمجة Excel وحدات الماكرو مع VBA

4 أخطاء يجب تجنبها عند برمجة Excel وحدات الماكرو مع VBA

مايكروسوفت اكسل هي بالفعل أداة قادرة على تحليل البيانات ، ولكن مع القدرة على أتمتة المهام المتكررة باستخدام وحدات الماكرو عن طريق كتابة تعليمات برمجية بسيطة في Visual Basic for Applications (VBA) ، فهي أكثر قوة. ومع ذلك ، قد يتسبب استخدام VBA بشكل غير صحيح في حدوث مشكلات.





حتى لو لم تكن مبرمجًا ، فإن VBA تقدم وظائف بسيطة تسمح لك بإضافة وظائف رائعة إلى جداول البيانات الخاصة بك.





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





الشروع في العمل مع VBA

يمكن لـ VBA القيام بجميع أنواع الأشياء الأنيقة من أجلك. من كتابة وحدات الماكرو التي تعدل الأوراق إلى إرسال رسائل بريد إلكتروني من جدول بيانات Excel باستخدام البرامج النصية لـ VBA هناك قيود قليلة جدًا على إنتاجيتك.

إذا لم تكن قد قمت ببرمجتها في VBA في Excel قبل أن تحتاج إلى تمكين أدوات المطور في برنامج Excel الخاص بك. والخبر السار هو أن تمكين أدوات المطور أمر سهل للغاية. فقط اذهب إلى ملف > خيارات وثم تخصيص الشريط . فقط حرك ملف مطور من الجزء الأيسر إلى اليمين.



تأكد من تمكين علامة التبويب هذه في خانة الاختيار ، وستظهر الآن علامة تبويب المطور في قائمة Excel.

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





أنت الآن جاهز لكتابة التعليمات البرمجية لـ VBA! علامة التبويب هذه هي المكان الذي ستتمكن فيه من الوصول إلى VBA أيضًا تسجيل وحدات الماكرو في Excel . الآن وبعد أن أصبح Excel جاهزًا للعمل ، فلنستعرض بعض الأخطاء الشائعة التي يجب تجنبها وطرق منعها.

1. أسماء المتغيرات الرهيبة

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





ماذا تعني علامة الاختيار على الماسنجر

طوال عقود من كتابة الكود ، صادفت العديد من المدارس الفكرية عندما يتعلق الأمر باتفاقيات التسمية المتغيرة وتعلمت بعض القواعد بالطريقة الصعبة. فيما يلي بعض النصائح السريعة لإنشاء أسماء المتغيرات:

  • اجعلها أقصر ما يمكن.
  • اجعلها وصفية قدر الإمكان.
  • قدم لهم نوع المتغير (منطقي ، عدد صحيح ، إلخ ...).

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

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

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

تأكد أيضًا من تسمية الأوراق في مصنف Excel.

بهذه الطريقة ، عندما تشير إلى اسم الورقة في كود Excel VBA الخاص بك ، فأنت تشير إلى اسم منطقي. في المثال أعلاه ، لدي ورقة حيث أقوم بسحب معلومات الشبكة ، لذلك أسمي الورقة 'الشبكة'. في أي وقت أريد الرجوع إلى ورقة الشبكة ، يمكنني القيام بذلك بسرعة دون البحث عن رقم الورقة.

2. كسر بدلا من التكرار

واحدة من أكثر المشاكل شيوعًا التي يواجهها مبرمجو VBA الأحدث عند بدء كتابة التعليمات البرمجية هي التعامل بشكل صحيح مع الحلقات.

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

غالبًا ما يرغب المبرمجون الجدد في الخروج من حلقة (حلقات VBA For أو حلقات VBA Do while) فورًا عندما تكون حالة معينة صحيحة.

فيما يلي مثال على هذه الطريقة المستخدمة لكسر حلقة VBA.

For x = 1 To 20
If x = 6 Then Exit For
y = x + intRoomTemp
Next i

يتبع المبرمجون الجدد هذا النهج لأنه سهل. حاول وتجنب كسر الحلقة بشكل صريح.

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

While (x>=1 AND x<=20 AND x6)
For x = 1 To 20
y = x + intRoomTemp
Next i
Wend

هذا يسمح بالتدفق المنطقي للشفرة الخاصة بك. الآن سوف يتكرر الرمز ويتوقف بمجرد أن يصل إلى 6. لا حاجة لتضمين أوامر EXIT أو BREAK غير ملائمة في منتصف الحلقة.

3. عدم استخدام المصفوفات

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

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

إذا لم تستخدم مصفوفة من قبل ، فلا داعي للخوف. تخيل مصفوفة كصينية مكعبات ثلج بها عدد معين من 'المكعبات' التي يمكنك وضع المعلومات فيها. المكعبات مرقمة من 1 إلى 12 ، وهذه هي الطريقة التي 'تضع' بها البيانات.

يمكنك بسهولة تحديد مصفوفة فقط عن طريق الكتابة Dim arrMyArray (12) كعدد صحيح .

كيفية استخدام الهاتف كميكروفون للكمبيوتر

يؤدي هذا إلى إنشاء 'درج' به 12 فتحة متاحة لملءها.

إليك ما قد يبدو عليه كود حلقات الصف بدون مصفوفة:

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
If Range('A' & str(x)).value <100 then
intTemp = (Range('A' & str(x)).value) * 32 - 100
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

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

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

إليك أفضل مثال على ذلك ، باستخدام المصفوفة. أولاً ، لنقم بإنشاء المصفوفة.

Sub Test1()
Dim x As Integer
intNumRows = Range('A2', Range('A2').End(xldown)).Rows.Count
Range('A2').Select
For x = 1 To intNumRows
arrMyArray(x-1) = Range('A' & str(x)).value)
ActiveCell.Offset(1, 0).Select
Next
End Sub

ال x-1 للإشارة إلى عنصر المصفوفة ضروري فقط لأن حلقة For تبدأ عند 1. يجب أن تبدأ عناصر المصفوفة من الصفر.

الآن بعد أن أصبح لديك المصفوفة ، من السهل جدًا معالجة المحتويات.

Sub TempCalc()
For x = 0 To UBound(arrMyArray)
arrMyTemps(y) = arrMyArray(x) * 32 - 100
Next
End Sub

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

4. استخدام مراجع كثيرة جدًا

سواء كنت تقوم بالبرمجة باستخدام Visual Basic أو VBA ، فستحتاج إلى تضمين 'المراجع' للوصول إلى ميزات معينة.

المراجع تشبه نوعًا ما 'مكتبات' مليئة بالوظائف التي يمكنك الاستفادة منها إذا قمت بتمكين هذا الملف. يمكنك العثور على مراجع في عرض المطور بالنقر فوق أدوات في القائمة ثم النقر فوق مراجع .

ما ستجده في هذه النافذة هو كل المراجع المحددة حاليًا لمشروع VBA الحالي الخاص بك.

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

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

بمجرد تحديده ، سترى جميع الكائنات والوظائف المتاحة ، والتي يمكنك النقر فوقها لمعرفة المزيد عنها.

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

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

كيفية اقتصاص لقطة الشاشة على نظام التشغيل mac

البرمجة في Excel VBA

تخيف الفكرة الكاملة لكتابة التعليمات البرمجية في Excel الكثير من الناس ، لكن هذا الخوف ليس ضروريًا حقًا. Visual Basic for Applications هي لغة بسيطة للغاية للتعلم ، وإذا اتبعت الممارسات الأساسية الشائعة المذكورة أعلاه ، فستضمن أن التعليمات البرمجية الخاصة بك نظيفة وفعالة وسهلة الفهم.

لا تتوقف عند هذا الحد رغم ذلك. قم ببناء أساس قوي لمهارات Excel باستخدام أ برنامج تعليمي لـ VBA للمبتدئين . ثم استمر في التعرف على VBA ووحدات الماكرو مع الموارد لمساعدتك على أتمتة جداول البيانات الخاصة بك.

يشارك يشارك سقسقة بريد الالكتروني هل يستحق الترقية إلى Windows 11؟

تم إعادة تصميم Windows. لكن هل هذا كافٍ لإقناعك بالانتقال من Windows 10 إلى Windows 11؟

اقرأ التالي
مواضيع ذات صلة
  • إنتاجية
  • برمجة
  • برمجة
  • البرمجة المرئية الأساسية
  • مايكروسوفت اكسل
نبذة عن الكاتب أنتوني جرانت(40 مقالة منشورة)

أنتوني غرانت كاتب مستقل يغطي البرمجة والبرمجيات. إنه متخصص في علوم الكمبيوتر ويشتغل في البرمجة و Excel والبرمجيات والتكنولوجيا.

المزيد من Anthony Grant

اشترك في نشرتنا الإخبارية

انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!

انقر هنا للاشتراك