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

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

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

هل تبحث عن معلومات حول كيفيه إنشاء داله Javascript مخصصه يمكنك تشغيلها علي excel for Windows أو excel for Mac أو excel Online ؟ إذا كنت ، فراجع المقالة نظره عامه حولالدالات المخصصة في Excel https://aka.ms/customfunctions.

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

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

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

مثال علي نموذج طلب بدون داله مخصصه

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

  1. اضغط علي Alt + F11 لفتح محرر Visual Basic (علي جهاز Mac ، اضغط علي FN + Alt + F11) ، ثم انقر فوق ادراج وحده _gt_ نمطيه. تظهر نافذه وحده نمطيه جديده علي الجانب الأيسر من محرر 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.

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

= الخصم (D7, E7)

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

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

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

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

تقوم جمله If في كتله التعليمات البرمجية التالية بفحص وسيطه الكمية وتحديد ما إذا كان عدد العناصر التي تم بيعها أكبر من 100 أو مساويا له:

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

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

الخصم = الكمية * السعر * 0.1

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

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

الخصم = 0

وأخيرا ، فان العبارة التالية تقرب القيمة المعينة لمتغير الخصم إلى منزلتين عشريتين:

الخصم = التطبيق. Round (الخصم ، 2)

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

يجب ان تبدا الدالة المخصصة بجمله الدالة وتنتهي بجمله الدالة end. بالاضافه إلى اسم الدالة ، تقوم عبارة الدالة عاده بتعيين وسيطه واحده أو أكثر. ومع ذلك ، يمكنك إنشاء داله بدون وسيطات. يتضمن Excel العديد من الدالات المضمنة ؛ RAND و NOW ، علي سبيل المثال ، التي لا تستخدم الوسيطات.

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

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

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

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

مثال لداله VBA مع التعليقات

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

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

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

لاستخدام داله مخصصه ، يجب ان يكون المصنف الذي يحتوي علي الوحدة النمطية التي إنشات الدالة مفتوحا فيها. إذا لم يكن هذا المصنف مفتوحا ، ستحصل علي #NAME ؟ ظهور رسالة خطا عند محاولة استخدام الدالة. إذا قمت بالاشاره إلى الدالة في مصنف آخر ، فيجب ان تسبق اسم الدالة اسم المصنف الذي تتواجد فيه الدالة. علي سبيل المثال ، إذا قمت بإنشاء داله باسم "الخصم" في مصنف يسمي "الدالة .xlsb" و "يمكنك الاتصال بها من مصنف آخر ، فيجب عليك كتابه = .xlsb! الخصم ()، وليس ببساطه = الخصم ().

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

×