على الرغم من أن Excel يحتوي بالفعل على مئات الوظائف المضمنة مثل SUM و VLOOKUP و LEFT وما إلى ذلك ، إلا أن الوظائف المضمنة المتوفرة لا تكفي عادةً للقيام بمهام معقدة إلى حد ما. ومع ذلك ، لا تقلق لأنك تحتاج فقط إلى إنشاء الوظائف المطلوبة بنفسك.
خطوة
الخطوة 1. قم بإنشاء مصنف جديد أو افتح المصنف الذي تريد معالجته باستخدام وظائف معرّفة من قبل المستخدم (UDF)
الخطوة 2. افتح محرر Visual Basic في Microsoft Excel عبر Tools-> Macro-> Visual Basic Editor (أو اضغط على الاختصار Alt + F11)
الخطوة 3. انقر فوق زر الوحدة النمطية لإضافة وحدة نمطية جديدة إلى ورقة العمل الخاصة بك
يمكنك إنشاء UDF في مصنف بدون إضافة وحدة نمطية جديدة ، لكن الوظيفة لن تعمل في أوراق عمل أخرى في نفس المصنف.
الخطوة 4. قم بإنشاء "رأس" أو "نموذج أولي" لوظيفتك
يجب أن يتبع النموذج الأولي للوظيفة الهيكل التالي:
الوظيفة العامة "اسم الوظيفة" (معلمة 1 كنوع 1 ، معلمة 2 كنوع 2) كنوع نتيجة.
يمكن أن تحتوي النماذج الأولية على أكبر عدد ممكن من الوظائف ، ويمكن أن تكون أنواعها جميع أنواع البيانات الأساسية أو أنواع كائنات Excel في شكل نطاق. يمكنك التفكير في المعلمات على أنها "عوامل تشغيل" (عوامل تشغيل) تعمل عليها الوظيفة. على سبيل المثال ، عندما تكتب SIN (45) لحساب جيب 45 درجة ، فسيتم أخذ الرقم 45 كمعامل. بعد ذلك ، سيستخدم رمز الوظيفة هذه القيم لإجراء العمليات الحسابية وعرض النتائج.
الخطوة 5. أضف رمز الوظيفة للتأكد من أنك: 1) تستخدم القيمة التي قدمتها المعلمة ؛ 2) تمرير النتيجة إلى اسم الوظيفة ؛ و 3) أغلق الوظيفة بجملة "وظيفة النهاية" يستغرق تعلم البرمجة بلغة VBA أو بأي لغة أخرى الكثير من الوقت والإرشادات التفصيلية. لحسن الحظ ، تحتوي هذه الوظائف عادةً على كتل صغيرة من التعليمات البرمجية ولا تستفيد كثيرًا من ميزات لغة البرمجة. فيما يلي بعض عناصر لغة VBA التي يمكن استخدامها:
- كتلة If (if) ، والتي تسمح لك بتنفيذ جزء من التعليمات البرمجية فقط إذا تم استيفاء الشرط. كمثال:
- . يمكنك ترك الكلمة الأساسية Else مع الجزء الثاني من الكود لأنها اختيارية.
- كتلة Do (do) ، التي تنفذ جزءًا من التعليمات البرمجية while أو until عند أو حتى يتم استيفاء الشرط. كمثال:
- . لاحظ أيضًا السطر الثاني الذي "يعلن" المتغير. يمكنك إضافة متغيرات إلى التعليمات البرمجية الخاصة بك لاستخدامها لاحقًا. المتغيرات تعمل كقيم مؤقتة في الكود. أخيرًا ، ضع في اعتبارك إعلان الوظيفة على أنه BOOLEAN ، وهو نوع بيانات يسمح فقط بقيم TRUE أو FALSE. هذه الطريقة في تحديد الأعداد الأولية بعيدة كل البعد عن المثالية ، لكن الكود تمت كتابته بطريقة تسهل قراءته.
- للحظر (إلى) ، والذي ينفذ قدرًا معينًا من التعليمات البرمجية. كمثال:
- قيمة ثابتة يتم كتابتها مباشرة في صيغة الخلية. في هذه الحالة ، يجب اقتباس النص (السلسلة).
- مراجع الخلايا ، على سبيل المثال ب 6 أو نطاق مثل A1: C3 (يجب أن تكون المعلمة من نوع البيانات "Range")
-
وظيفة أخرى مضمنة في وظيفتك (يمكن أيضًا تضمين وظيفتك في دالة أخرى) ، على سبيل المثال: = عاملي (MAX (D6: D8))
الخطوة 7. تأكد من صحة النتائج
استخدمه عدة مرات للتأكد من أن الوظيفة قادرة على التعامل مع قيم المعلمات المختلفة بشكل صحيح:
نصائح
- عند كتابة كتل التعليمات البرمجية في هياكل التحكم مثل If ، For ، Do ، وما إلى ذلك ، تأكد من وضع مسافة بادئة (أدخل حد السطر الأيسر قليلاً داخل) كتلة التعليمات البرمجية عن طريق الضغط على مفتاح المسافة عدة مرات ، أو علامة التبويب. هذا سيجعل الكود أسهل في الفهم وسيكون العثور على الأخطاء أسهل بكثير. بالإضافة إلى ذلك ، تصبح الزيادة في الوظائف أسهل.
- إذا كنت لا تعرف كيفية كتابة التعليمات البرمجية للوظائف ، فاقرأ المقالة كيفية كتابة ماكرو بسيط في Microsoft Excel.
- في بعض الأحيان ، لا تحتاج الوظائف إلى جميع المعلمات لحساب النتيجة. في هذه الحالة ، يمكنك استخدام الكلمة الأساسية الاختيارية قبل اسم المعلمة في رأس الوظيفة. يمكنك استخدام وظيفة IsMissing (اسم_المعامل) في التعليمات البرمجية الخاصة بك لتحديد ما إذا تم تعيين قيمة للمعلمة أم لا.
- استخدم الأسماء غير المستخدمة كوظائف في Excel بحيث لا يتم الكتابة فوق أية وظائف وحذفها.
- يحتوي Excel على العديد من الوظائف المضمنة ويمكن إجراء معظم العمليات الحسابية باستخدام هذه الوظائف المضمنة ، إما بشكل فردي أو كلها مرة واحدة. تأكد من إلقاء نظرة على قائمة الوظائف المتاحة قبل أن تبدأ في الترميز بنفسك. يمكن أن يتم التنفيذ بشكل أسرع إذا كنت تستخدم وظائف مدمجة.
تحذير
- لأسباب تتعلق بالأمان ، يقوم العديد من الأشخاص بتعطيل وحدات الماكرو. تأكد من إعلام مستلمي المصنف الخاص بك أن المصنف الذي تم إرساله يحتوي على وحدات ماكرو ، وأن وحدات الماكرو هذه لن تضر بأجهزة الكمبيوتر الخاصة بهم.
- الوظيفة المستخدمة في هذه المقالة ليست أفضل طريقة لحل المشكلة ذات الصلة. يستخدم المثال لشرح استخدام هياكل التحكم في اللغة.
- يحتوي VBA ، مثل اللغات الأخرى ، على العديد من هياكل التحكم الأخرى إلى جانب Do و If و For. يصف الهيكل الذي تمت مناقشته هنا فقط ما يمكن عمله في الكود المصدري للوظيفة. هناك العديد من الأدلة على الإنترنت التي يمكن استخدامها لمساعدتك على تعلم VBA.
نتيجة مقرر الوظيفة العامة (كقيمة صحيحة) كسلسلة
إذا كانت القيمة> = 5 ثم
نتائج الدورة = "مقبولة"
آخر
نتائج الدورة = "مرفوضة"
إنهاء إذا
وظيفة النهاية
لاحظ العناصر الموجودة في مقطع التعليمات البرمجية If:
إذا كان الشرط ، ثم كود آخر END IF
الوظيفة العامة BilPrima (القيمة بشكل صحيح) باعتبارها قيمة منطقية
خافت أنا كعدد صحيح
أنا = 2
BilPrima = صحيح
يفعل
إذا كانت القيمة / i = Int (القيمة / i) ثم
BilPrima = خطأ
إنهاء إذا
أنا = أنا + 1
التكرار بينما i <value And NumberPrima = صحيح
وظيفة النهاية
انظر مرة أخرى إلى العناصر:
قم بعمل رمز LOOP أثناء / حتى الشرط
عاملي الوظيفة العامة (القيمة كعدد صحيح) طالما
نتائج قاتمة طويلة
خافت أنا كعدد صحيح
إذا كانت القيمة = 0 ثم
النتيجة = 1
ElseIf القيمة = 1 ثم
النتيجة = 1
آخر
النتيجة = 1
بالنسبة إلى i = 1 To value
النتيجة = النتيجة * أنا
التالي
إنهاء إذا
عاملي = نتيجة
وظيفة النهاية
انظر مرة أخرى إلى العناصر:
للمتغير = الحد الأدنى للحد الأعلى من الرمز التالي
. لاحظ أيضًا عنصر ElseIf الإضافي في عبارة If ، والذي يسمح لك بإضافة المزيد من الخيارات إلى الكود الذي يتم تنفيذه. أخيرًا ، ضع في اعتبارك وظيفة "النتيجة" والمتغير الذي تم إعلانه على أنه طويل. يسمح نوع البيانات الطويل بقيم أكبر بكثير من عدد صحيح.
يظهر أدناه رمز الدالة التي تحول الأرقام الصغيرة إلى كلمات.
الخطوة 6. عد إلى المصنف واستخدم الدالة بكتابة رمز "يساوي" (=) متبوعًا باسم الوظيفة في الخلية
اكتب قوسين الافتتاح ("(") بعد اسم الوظيفة ، باستخدام الإشارة غيبوبة لفصل المعلمات ، والانتهاء بأقواس إغلاق (")"). كمثال:
= NumberToLetter (A4)
. يمكنك أيضًا استخدام الصيغ محلية الصنع من خلال البحث عنها في فئات تعريف المستخدم داخل خيار إدراج الصيغة. أنت فقط اضغط على الزر الفوركس على يسار شريط الصيغة. هناك ثلاثة أنواع من أشكال المعلمات في الوظائف: