انشاء الدالات المخصصه في Excel

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

علي الرغم من ان Excel يتضمن العديد من دالات ورقه العمل المضمنه، ف# من المحتمل ان تكون ليس من الضروري داله ل# كل نوع من تنفيذ العمليه الحسابيه. تعذر عنده تتوقع مصممي Excel احتياجات الحساب الخاص ب# كل مستخدم. بدلا من ذلك، Excel يوفر لك امكانيه انشاء الدالات المخصصه، الموضحه في هذه المقاله.

استخدم دالات مخصص، مثل وحدات الماكرو، لغه البرمجه Visual Basic for Applications (VBA). تختلف عن وحدات الماكرو ب# طريقتين كبير. اولا، استخدم الاجراءات الداله بدلا من الاجراءات الفرعيه . يعني ذلك، ابدا ب# استخدام جمله الداله بدلا من عباره Sub و end ب# استخدام الداله انتهاء بدلا من End Sub. ثانيا، يمكنهم تنفيذ عمليات حسابيه بدلا من اتخاذ اي اجراء. تم استثناء انواع معينه من جمل، مثل بيانات تحديدها و# تنسيق نطاقات، من الدالات المخصصه. في هذه المقاله، سوف تتعلم كيفيه انشاء و# استخدام الدالات المخصصه. ل# انشاء الدالات و# وحدات ماكرو، يمكنك العمل ب# استخدام Visual Basic Editor (VBE)، الذي يفتح في نافذه جديده منفصله من Excel.

ل# نفترض تقدمها الشركه يتم خصم كميه 10 ب# المائه علي المبيعات ل# احد المنتجات التي تم توفيرها الترتيب ل# اكثر من 100 وحده. في المقطع التالي، و# فيما يلي شرح داله ل# حساب هذا الخصم.

يعرض المثال التالي نموذج طلب يسرد كل عنصر، الكميه، و# السعر، الخصم (ان وجدت)، و# السعر المفصل الناتج.

نموذج امر المثال دون داله مخصصه

ل# انشاء داله خصم مخصصه في هذا المصنف، اتبع الخطوات التاليه:

  1. اضغط علي Alt + F11 ل# فتح محرر Visual Basic (علي جهاز Mac، اضغط FN + ALT + F11 )، ثم انقر فوق ادراج > وحده نمطيه. تظهر نافذه وحده نمطيه جديده الي الجانب الايسر من محرر Visual Basic.

  2. نسخ و# لصق التعليمه البرمجيه التاليه ل# الوحده النمطيه الجديده.

    Function DISCOUNT(quantity, price)
    If quantity >=100 Then
    DISCOUNT = quantity * price * 0.1
    Else
    DISCOUNT = 0
    End If

    DISCOUNT = Application.Round(Discount, 2)
    End Function

ملاحظة: ل# جعل التعليمات البرمجيه الخاصه بك اكثر القراءه، يمكنك استخدام المفتاح Tab ل# اضافه مسافه بادئه خطوط. المسافه البادئه ل# الميزه فقط، و# اختياريه، كما سيتم تشغيل التعليمات البرمجيه مع او ب# دونه. بعد كتابه خط ذات المسافه بادئه، يفترض محرر Visual Basic علي السطر التالي سيكون ذات المسافه البادئه ب# طريقه مماثله. ل# نقل (ب# معني، الي اليسار) الحرف علامه جدوله واحده، اضغط علي Shift + Tab.

الان تصبح جاهزا ل# استخدام الداله DISCOUNT الجديده. اغلق محرر Visual Basic، حدد الخليه G7، و# اكتب ما يلي:

=DISCOUNT(D7,E7)

Excel حساب الخصم 10 ب# المئه علي وحدات 200 في 47.50 كل وحده و# ارجاع $950.00.

في السطر الاول من التعليمات البرمجيه ل VBA، الداله DISCOUNT(quantity, price)، يمكنك الاشاره الي ان الداله DISCOUNT تتطلب وسيطتين هما و# الكميه و# سعر. عندما تتصل ب# الداله في خليه ورقه عمل، يجب تضمين تلك وسيطتين هما. في الصيغه = DISCOUNT(D7,E7)، D7 الوسيطه الكميه ، و# هي E7 الوسيطه السعر . الان يمكنك نسخ الصيغه الخصم الي G8:G13 ل# الحصول علي نتائج هو مبين ادناه.

دعنا ناخذ في الاعتبار كيفيه تفسير Excel هذا الاجراء الداله. عند الضغط علي Enter، يبحث عن اسم الخصم في المصنف الحالي Excel و# البحث عن وجود داله مخصصه في وحده نمطيه ل VBA. اسماء الوسيطات بين اقواس، الكميه و# سعر، تعتبر عناصر نائبه ل# القيم الذي يستند اليه حساب الخصم.

نموذج امر المثال ب# استخدام داله مخصصه

اذا بيان في كتله التعليمات البرمجيه التاليه ب# فحص الوسيطه الكميه و# تحديد ما اذا كان عدد العناصر المباعه اكبر من او يساوي 100:

If quantity >= 100 Then
DISCOUNT = quantity * price * 0.1
Else
DISCOUNT = 0
End If

اذا كان عدد العناصر المباعه اكبر من او يساوي 100، ينفذ VBA العباره التاليه، مما ضرب قيمه الكميه ب# قيمه السعر و# ثم يضرب الناتج في 0.1:

Discount = quantity * price * 0.1

يتم تخزين النتيجه ك# المتغير الخصم. يسمي عباره VBA الذي يقوم ب# تخزين قيمه في متغير عباره التعيين ، ل# انه يتم تقييم التعبير علي الجانب الايسر من علامه المساواه و# يعين النتيجه الي اسم المتغير علي اليمين. ل# ان المتغير الخصم يحمل الاسم نفسه ك# اجراء داله، يتم ارجاع القيمه المخزنه في المتغير الصيغه ورقه العمل التي تسمي الداله DISCOUNT.

اذا كانت الكميه اقل من 100، ينفذ VBA العباره التاليه:

Discount = 0

و# اخيرا، العباره التاليه تقريب القيمه التي تم تعيينها الي متغير الخصم الي منزلتين عشريتين:

Discount = Application.Round(Discount, 2)

الداله ROUND لا يحتوي علي VBA، و# لكن يقوم Excel. ل# ذلك، ل# استخدام ROUND في هذا البيان، يمكنك معرفه ما VBA ل# البحث عن طريقه Round (الداله) في كائن التطبيق (Excel). يمكنك القيام ب# ذلك عن طريق اضافه الكلمه التطبيق قبل الكلمه Round. استخدم بناء الجمله هذا عندما تريد الوصول اليه عن وظيفه Excel من وحده نمطيه ل VBA.

يجب البدء ب# استخدام جمله داله داله مخصصه و# ينتهي عباره "الداله انتهاء". ب# الاضافه الي اسم الداله، يحدد بيان الداله عاده وسيطه واحده او اكثر. و# مع ذلك، يمكنك انشاء داله مع ايه وسيطات. يتضمن Excel العديد من دالات مضمنه — RAND و NOW، علي سبيل المثال — التي لا تستخدم الوسيطات.

متابعه الكشف الداله، يتضمن اجراء داله واحده او اكثر عبارات VBA الذي اتخاذ قرارات و# تنفيذ عمليات حسابيه ب# استخدام الوسيطات تمريرها الي الداله. و# اخيرا، في مكان ما في الاجراء الداله، يجب تضمين عباره يعين قيمه الي متغير ب# الاسم نفسه ك# الداله. يتم ارجاع هذه القيمه الي الصيغه التي استدعاء الداله.

عدد الكلمات الاساسيه VBA التي يمكنك استخدامها في الدالات المخصصه اصغر من الرقم يمكنك استخدامها في وحدات الماكرو. الدالات المخصصه غير مسموح ب# القيام ب# اي شيء بدلا من ارجاع قيمه ل# صيغه في ورقه عمل، او ل# تعبير يستخدم في ماكرو VBA او داله اخري. علي سبيل المثال، الدالات المخصصه لا يمكن تغيير حجم النوافذ او تحرير صيغه في خليه، او تغيير الخط او لون او نقش خيارات النص في خليه. اذا قمت ب# تضمين التعليمات البرمجيه "اجراء" الخاصه ب# هذا النوع في اجراء داله، ترجع الداله قيمه الخطا # #VALUE!. خطا.

اجراء واحد يمكنك القيام اجراء داله (بعيدا عن اجراء عمليات حسابيه) يتم عرض مربع حوار. يمكنك استخدام عباره InputBox في داله مخصصه ك# وسيله ل# الحصول علي ادخال من المستخدم تنفيذ الداله. يمكنك استخدام عباره MsgBox ك# وسيله ل# نقل المعلومات ل# المستخدم. يمكنك ايضا استخدام مربعات الحوار المخصصه او UserForms، و# لكن هذا موضوع خارج نطاق هذه المقدمه.

دالات مخصصه و# وحدات الماكرو بسيطه حتي يكون من الصعب قراءتها. يمكنك جعلها من الاسهل فهمه ب# كتابه النص التوضيحي في شكل تعليقات. يمكنك اضافه التعليقات ب# نص توضيحي علامه اقتباس احاديه. علي سبيل المثال، يوضح المثال التالي الداله DISCOUNT ذات التعليقات. اضافه تعليقات مثل هذه يسهل علي او يشارك شخص ل# الحفاظ علي التعليمات البرمجيه ل VBA ب# مرور الوقت. اذا كنت ب# حاجه الي اجراء تغيير التعليمات البرمجيه في المستقبل، سيكون لديك وقت اكثر سهوله فهم الاجراء الاصل.

مثال ل# داله VBA ب# استخدام التعليقات

علامه اقتباس احاديه اعلام Excel ل# تجاهل كل شيء الي اليمين علي السطر نفسه، حيث يمكنك انشاء التعليقات اما علي اسطر ب# حد ذاتها او علي الجانب الايسر من الاسطر التي تحتوي علي VBA التعليمات البرمجيه. قد تبدا كتله طويله نسبيا من التعليمات البرمجيه ب# تعليق يشرح الغرض الاجمالي، ثم استخدم تعليقات مضمنه ل# المستند عبارات الفرديه.

هناك طريقه اخري ل# المستند وحدات ماكرو و# الدالات المخصصه الخاصه بك اعطائهم اسماء وصفيا. علي سبيل المثال، بدلا من اسم ماكرو التسميات، قد اسما مونثلابيلس ل# وصف الغرض يعمل الماكرو شكل اكثر تحديدا. استخدام اسماء وصفيه ل# وحدات الماكرو و# الدالات المخصصه مفيدا خاصه عندما تقوم ب# انشاء العديد من الاجراءات، خاصه اذا قمت ب# انشاء الاجراءات التي تحتوي علي اغراض مشابهه و# لكنها غير متطابقه.

كيف المستند وحدات ماكرو و# الدالات المخصصه الخاصه بك مساله تفضيلات الشخصيه. ما هو مهم هي استخدام بعض الاساليب ل# الوثائق، و# استخدام طريقه متناسقه.

ل# استخدام داله مخصصه، يجب فتح المصنف الذي يحتوي علي الوحده النمطيه حيث قمت ب# انشائه الداله. اذا لم يكن هذا المصنف مفتوح، يمكنك الحصول علي #NAME؟ خطا عند محاوله استخدام الداله. اذا كنت تشير الي الداله في مصنف اخر، يجب ان تسبق اسم الداله مع اسم المصنف حيث يقيم الداله. علي سبيل المثال، اذا قمت ب# انشاء داله تسمي الخصم في مصنف تسمي Personal.xlsb و# استدعاء هذه الداله من مصنف اخر، ف# يجب كتابه =personal.xlsb!discount()، غير مجرد =discount().

يمكنك حفظ نفسك بعض ضغطات المفاتيح (و# اخطاء الكتابه المحتمله) عن طريق تحديد الدالات المخصصه الخاصه بك من مربع الحوار "ادراج داله". الدالات المخصصه الخاصه بك تظهر في الفئه "معرفه من قبل المستخدم":

مربع الحوار "إدراج دالة"

طريقه اسهل ل# توفير الدالات المخصصه الخاصه بك في كل الاوقات ب# تخزينها في مصنف منفصل و# قم ب# حفظ المصنف ك# وظيفه اضافيه. يمكنك ثم توفير الوظيفه الاضافيه عند تشغيل Excel. اليك كيفيه القيام ب# ذلك:

  1. بعد الانتهاء من انشاء الدالات التي تحتاج اليها، انقر فوق ملف > حفظ ب# اسم.

    في Excel 2007، انقر فوق زر Microsoft Office، و# انقر فوق حفظ ب# اسم

  2. في مربع الحوار حفظ ب# اسم، افتح القائمه المنسدله حفظ ب# نوع، و# حدد الوظيفه الاضافيه Excel. حفظ المصنف ب# اسم التعرف عليه، مثل ميفونكشنز، في ملف الوظائف الاضافيه . مربع الحوار حفظ ب# اسم سيتم اقتراح هذا المجلد، حيث كل ما تحتاج الي تنفيذه قبول الموقع الافتراضي.

  3. بعد ان قمت ب# حفظ المصنف، انقر فوق ملف > خيارات Excel.

    في Excel 2007، انقر فوق زر Microsoft Office، و# انقر فوق خيارات Excel.

  4. في مربع الحوار خيارات Excel، انقر فوق الفئه وظائف اضافيه.

  5. في القائمه المنسدله اداره، حدد وظائف Excel الاضافيه. ثم انقر فوق الزر انتقال.

  6. في مربع الحوار الوظائف الاضافيه، حدد خانه الاختيار الموجوده ب# جانب اسم التي استخدمتها ل# حفظ المصنف الخاص بك، كما هو موضح ادناه.

    مربع الحوار "الوظائف الإضافية"

  1. بعد الانتهاء من انشاء الدالات التي تحتاج اليها، انقر فوق ملف > حفظ ب# اسم.

  2. في مربع الحوار حفظ ب# اسم، افتح القائمه المنسدله حفظ ب# نوع، و# حدد الوظيفه الاضافيه Excel. حفظ المصنف ب# اسم التعرف عليه، مثل ميفونكشنز.

  3. بعد ان قمت ب# حفظ المصنف، انقر فوق ادوات > وظائف Excel الاضافيه.

  4. في مربع الحوار الوظائف الاضافيه، حدد الزر "استعراض" ل# العثور علي الوظيفه الاضافيه، انقر فوق فتح، ثم حدد المربع الي جانب موقعك الوظيفه الاضافيه في المربع الوظائف الاضافيه المتوفره.

بعد اتباع هذه الخطوات، الدالات المخصصه الخاصه بك ستتوفر كل مره يتم فيها تشغيل Excel. اذا كنت تريد اضافه الي المكتبه الداله، عد الي محرر Visual Basic. اذا كان البحث في مستكشف المشاريع "محرر Visual Basic" تحت عنوان فبابروجيكت، ستري وحده نمطيه مسماه بعد ملفك الوظيفه الاضافيه. الوظيفه الاضافيه سيكون .xlam ملحق.

وحدة نمطية مسماة في vbe

يؤدي النقر نقرا مزدوجا فوق الوحده النمطيه في "مستكشف المشاريع" محرر Visual Basic ل# عرض التعليمات البرمجيه الداله. ل# اضافه داله جديده، ضع نقطه الادراج بعد عباره "الداله الانتهاء" الذي يعد الداله اخر في نافذه التعليمات البرمجيه، و# ابدا الكتابه. يمكنك انشاء كما عدد من الدالات التي تحتاج اليها ب# هذه الطريقه، و# سيقوم دائما تكون متوفره في الفئه "معرفه من قبل المستخدم"، في مربع الحوار ادراج داله.

تمت كتابه هذا المحتوي الاصل ب# انقاص علامه و# ستينسون كرايج ك# جزء من Microsoft Office Excel 2007 Inside Outدفتر الخاصه بهم. بعدها تحديثه ل# تطبيق الاصدارات الاحدث من Excel ايضا.

هل تحتاج إلى مزيد من المساعدة؟

ويمكنك دائماً الاستفسار من أحد الخبراء في مجتمع Excel‏ التقني،أو الحصول على الدعم من خلال إجابات المجتمع،أو اقتراح ميزة جديدة أو تحسين عن طريق ‏Excel User Voice‏.

تعزيز مهارات Office
استكشاف التدريب
الحصول على الميزات الجديدة أولاً
الانضمام إلى Office Insider

هل كانت المعلومات مفيدة؟

نشكرك على ملاحظاتك!

شكراً لك على الملاحظات! يبدو أنه من المفيد إيصالك بأحد وكلاء دعم Office لدينا.

×