/ / Excel VBA وظيفة وشبه

وظيفة Excel VBA و Sub

وظيفة | الفرعية

الفرق بين وظيفة و الفرعية في Excel VBA هو أن الدالة يمكن أن تعيد القيمة في حين لا يمكن لقيمة فرعية. تصبح الوظائف والغواصات مفيدة للغاية مع زيادة حجم البرنامج.

وظيفة

إذا كنت تريد Excel VBA لتنفيذ مهمةبإرجاع نتيجة ، يمكنك استخدام وظيفة. ضع دالة في وحدة نمطية (في محرر Visual Basic ، انقر فوق إدراج ، الوحدة النمطية). على سبيل المثال ، وظيفة مع اسم المنطقة.

Function Area(x As Double, y As Double) As Double

Area = x * y

End Function

تفسير: تحتوي هذه الدالة على وسيطتين (من النوع Double) ونوع الإرجاع (الجزء بعد As As of type Double). يمكنك استخدام اسم الدالة (Area) في التعليمات البرمجية الخاصة بك للإشارة إلى النتيجة التي تريد إرجاعها (هنا x * y).

يمكنك الآن الرجوع إلى هذه الوظيفة (بمعنى آخر استدعاء الدالة) من مكان آخر في التعليمات البرمجية الخاصة بك ببساطة عن طريق استخدام اسم الدالة وإعطاء قيمة لكل وسيطة.

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

Dim z As Double

z = Area(3, 5) + 2

MsgBox z

تفسير: تقوم الدالة بإرجاع قيمة حتى تضطر إلى "التقاط" هذه القيمة في التعليمات البرمجية. يمكنك استخدام متغير آخر (z) لهذا. بعد ذلك ، يمكنك إضافة قيمة أخرى إلى هذا المتغير (إذا كنت تريد). وأخيرًا ، اعرض القيمة باستخدام MsgBox.

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

نتيجة اكسل VBA

الفرعية

إذا كنت تريد Excel VBA لتنفيذ بعض الإجراءات ، فيمكنك استخدام sub. ضع sub في وحدة نمطية (في محرر Visual Basic ، انقر فوق إدراج ، الوحدة النمطية). على سبيل المثال ، الفرعي مع اسم المنطقة.

Sub Area(x As Double, y As Double)

MsgBox x * y

End Sub

تفسير: يحتوي هذا الفرعي على وسيطتين (من النوع Double). ليس لديها نوع إرجاع! يمكنك الرجوع إلى هذا الفرعي (استدعاء الفرعي) من مكان آخر في التعليمات البرمجية الخاصة بك ببساطة عن طريق استخدام اسم الفرعية وإعطاء قيمة لكل وسيطة.

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

Area 3, 5

النتيجة عند النقر فوق زر الأمر الموجود على الورقة:

اكسل VBA الفرعية النتيجة

هل تستطيع رؤية الفرق بين الوظيفةوالفرعية؟ قامت الدالة بإرجاع القيمة 15. أضفنا القيمة 2 إلى هذه النتيجة وعرضنا النتيجة النهائية. عندما اتصلنا بالشبكة الفرعية لم يكن لدينا المزيد من السيطرة على النتيجة (15) لأنه لا يمكن لأحد العناصر الفرعية إرجاع قيمة!

اقرأ أيضًا: