الأساليب Methods in vba

الأساليب Methods in vba

سنتكلم اليوم عن الأساليب   methods in vba معرفة الكائنات في VBA مهمة للغاية. لتحقيق قيمة عملية، يجب التفاعل مع الكائنات التي تعمل معها.و لتصبح مبرمجًا ممتازًا في Excel VBA، يجب أن تعرف كيف تتحكم في تلك الكائنات باستخدام الطرق:

– الطرق methods تمثل الإجراءات التي يمكنك تنفيذها مع الكائن.

الطرق methods تسمح لك بالتفاعل مع الكائنات وتنفيذ الأوامر عليها

مثلًا، تقوم طريقة Range.ClearContents بمسح القيم والصيغ من نطاق الخلية، مما يؤدي عادةً إلى تغيير خاصية Range.Value.

كيفية العمل مع أساليب الكائن في VBA

ThisWorkbook.SaveAs Filename:=”C:\example\newfile.xlsx”, FileFormat:=xlOpenXMLWorkbook

هذا المثال لطريقة حفظ مصنف وهى   save as method

وهذا المثال يوضح البنية المتبعة للوصول الي أسلوب كائن

1Object.Method

وقد شرحنا هذه البنية سابقا عند العمل مع الخصائص

كيفية العمل مع وسيطات (أو معلمات) أساليب الكائن في VBA

بعض ، وليس كل ، أساليب الكائنات في VBA تأخذ الحجج. يمكن أن تكون الحجج إلزامية أو اختيارية.

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

بمعني مبسط الأسلوب method   هو تنفيذ فعل ما على كائن تتعامل معه

والحجج او الوسيطات او المعلمات أيا كانت التسمية arguments  تحدد طريقة تنفيذ هذا الفعل علي الكائن

Worksheets(“test”).Copy After:=Worksheets(“Sheet1”)

تقوم طريقة Worksheet.Copy بتوفير معلمتين اختياريتين. من الجدير بالذكر أنه يمكن اختيار معلمة واحدة فقط من بينهما:

1. المعلمة الأولى “befor”: هذه المعلمة تحدد الموقع الذي ستوضع فيه الورقة المنسوخة قبل ورقة أخرى محددة.

2. المعلمة الثانية “after”: تحدد الموقع الذي سيتم فيه وضع الورقة المنسوخة بعد ورقة معينة. في المثال المعروض، تم استخدام هذه المعلمة لوضع الورقة المنسوخة بعد “الورقة 1”.

Worksheets(“test”).Copy هذا هو الجزء الأول من الامر البرمجي  الكائن الذي نتعامل معه ثم النقطة ثم الأسلوب                      

 After:=Worksheets(“Sheet1”)هذا هو الجزء الثاني من الامر البرمجي الذي يحمل الوسائط  الذي يحدد طريقة تنفيذ الامر  نسخ   

الخيار #1: بناء الجملة الأساسي لتحديد وسيطات أسلوب الكائن

Worksheets(“test”).Copy ,Worksheets(“Sheet1”)

هذه صيغة اخري لتنفيذ نفس الامر البرمجي لاحظ الفرق بين النسختين فيما يتعلق بالإشارة إلى معلمات الأسلوب.copy

سأشرح السبب وراء وجود فاصلة (،) في بداية هذا الجزء من البيان أدناه.

1Object.Method Argument_Value

بعبارة أخرى، لتحديد وسيطة لأسلوب كائن VBA، يجب عليك:

• الخطوة #1: الإشارة إلى أسلوب الكائن بشكل مناسب باستخدام الصيغة الأساسية الموضحة أعلاه.

في الحالة المذكورة أعلاه، هذا هو “Worksheets(“test”).Copy”.

• الخطوة #2: وضع مسافة ( ) بعد اسم الأسلوب الذى هو الامر copy.

• الخطوة #3: وضع قيم الوسيطة المناسبة.

في المثال الذي أوردته أعلاه، هذا هو “, Worksheets(“Sheet1″)”.

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

الفاصلة تستخدم للإشارة إلى “تخطي” وسيطة. في النص المذكور أعلاه،

“Worksheets(“Sheet1″)” تشير إلى أن الوسيطة الأولى (والتي تمثل المعلمة “befor”) لم يتم تحديدها، بينما تم تحديد الوسيطة الثانية (والتي تمثل المعلمة “after”).

ببساطة، وجود الفاصلة في البداية يُظهر أننا قد تجاهلنا المعلمة الأولى ومررنا قيمة فقط للمعلمة الثانية. وهذا يتيح للمبرمج تحديد الوسائط التي يرغب في تمرير قيم لها دون الحاجة إلى تحديد قيم لجميع الوسائط

عندما نتعامل مع الأساليب  method في VBA، تظهر بعض التحديات في كيفية تمرير الوسائط أو المعلمات. فلندرس الفاصلة (,) ودورها في هذا السياق:

1. **استخدام الفواصل لفصل الوسائط:** إذا كنت تستخدم وسيطتين أو أكثر، فتستخدم الفاصلة للفصل بينها.

2. **الوسائط التي لا تملك أسماء:** عليك إدخال الوسائط حسب الترتيب الافتراضي الذي يتوقعه الأسلوب.

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

في المثال الذي ذكرته، طريقة “Worksheet.Copy” لديها وسيطتين اختياريتين ولكن يجب اختيار واحدة منهما فقط: “Before” و “After”. ولأنك استخدمت الوسيطة “After” فقط، فقد ظهرت الفاصلة في الكود لتمثل مكان الوسيطة “Before” التي تم تجاهلها.

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

الخيار #2: الوسيطات المسماة

بناء الجملة يكون بهذا الشكل التالي
Object.Method Argument_Name:=Argument_Value

عند استخدام وسائط مسماة، تتبع الخطوات التالية:

1. **الإشارة إلى الأسلوب المعني**: يجب أن تقوم بالإشارة إلى الأسلوب المعني بشكل صحيح.

2. **وضع مسافة**: بعد الأسلوب، ضع مسافة واحدة.

3. **اكتب اسم الوسيطة**: استخدم الاسم الرسمي للوسيطة.

4. **وضع العلامات “:=”**: بعد اسم الوسيطة، ضع علامة النقطتين ثم علامة المساواة.

5. **تحديد قيمة الوسيطة**: أخيرًا، قم بتحديد القيمة المطلوبة للوسيطة.

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

الجزء الأول فوق الخط باللون الأحمر  يشير الي الكائن متبوعا باسم الأسلوب نسخ copy

الجزء الثاني فوق الخط باللون الأزرق يشير تحديد الوسائط باسمها متبوعة بقيمتها

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

1. **ما هي الوسائط المسماة؟** 

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

2. **ما الفائدة من استخدام الوسائط المسماة؟**

   – **وضوح الكود**: عند قراءة الكود، سيكون من السهل فهم الغرض من كل وسيطة، لأن كل وسيطة محددة بواسطة اسمها.

   – **تجاوز الوسائط الاختيارية**: لا حاجة لإدراج وسائط اختيارية لا ترغب في استخدامها. فبدلاً من استخدام مكان فارغ للوسائط التي لا ترغب فيها، يمكنك ببساطة تجاهلها.

3. **التنوع في الترتيب**: باستخدام الوسائط المسماة، يمكنك تحديد الوسائط بأي ترتيب تريده، وليس حسب الترتيب الافتراضي فقط.

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

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

بالإشارة إلى وسيطات الطرق التي ترجع قيمة وتعمل باستخدام قيم الوسيطة الافتراضية

عند التعامل مع الطرق التي تُرجع قيمة أو تُنشئ كائنات جديدة في VBA، من الضروري عادةً وضع الوسائط داخل أقواس. وفي مثل هذه الحالات، طالما أن الوسائط داخل الأقواس، يمكنك اختيار استخدام إما الوسائط غير المسماة أو المسماة.

فلنفترض أن لديك “نطاق” (Range) وترغب في استخدام الطريقة “ClearContents” لمسح محتوى الخلية.

Range(“A1”).ClearContents

في هذا المثال، استخدمنا الطريقة “ClearContents” لمسح المحتوى الموجود داخل الخلية “A1”.

وفي حالة استخدام طريقة تُرجع قيمة، قد تحتاج إلى استخدام الأقواس:

x = Application.WorksheetFunction.CountA(Range(“A1:A10”))

في هذا المثال، استخدمنا طريقة “CountA” التي تُرجع عدد الخلايا غير الفارغة في نطاق محدد.

كيفية الوصول إلى طرق كائن معين

يمكن لكائن واحد في VBA أن يكون له عدة طرق (methods) مرتبطة به. ولكن الأمور ليست معقدة كما قد تبدو:

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

2. الجميل في VBA هو أن نفس الطريقة قد تكون مرتبطة بكائنات مختلفة، مما يجعل الأمور أسهل في التعلم والتطبيق.

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

4. أحد الأدوات المفيدة هو مسجل الماكرو، حيث يمكنه توجيهك حول الكائنات والخصائص والطرق التي قد تحتاجها.

فكرتين عن“الأساليب Methods in vba”

  1. Generally I don’t learn post on blogs, but I
    wish to say that this write-up very forced me to take a look
    at and do so! Your writing taste has been amazed me.
    Thanks, very nice post.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *