Properties and Methods of Objects
خصائص وأساليب الكائن
لنلقي نظرة عامة أولا ثم نتطرق فيما بعد للتفاصيل بالدروس القادمة
للوصول إلى خاصية كائن ، قم بتوصيل اسم الكائن إلى الخاصية عن طريق إدخال نقطة (نقطة توقف أو نقطة كاملة) بينهما.
أوراق العمل (1) .Name ، بإرجاع اسم ورقة العمل الأولى.
تحتوي بعض الكائنات على خصائص افتراضية.
الخاصية الافتراضية لكائن نطاق هي القيمة ويمكنك تجاهل الإشارة إلى القيمة.
في هذه الحالة ، استخدم النطاق ("A1"). القيمة أو المدى فقط ("A1") هو نفسه وسيعود قيمة أو محتوى الخلية A1 ، ويمكن استخدام التعبيرات بدلاً من ذلك.
يمكن أن تكون الخصائص:
- خاصية للقراءة فقط ، مما يعني أنه يمكنك القراءة أو الوصول لكن لا يمكن تغييرها.
- خاصية للقراءة والكتابة ، وفي هذه الحالة يمكن لكود VBA قراءة أو تغيير القيمة.
للوصول إلى طريقة كائن ، قم بتوصيل اسم الكائن بالطريقة عن طريق إدخال نقطة (نقطة توقف كاملة أو نقطة) بينهما.
Worksheets(1).Activate ، تنشيط ورقة العمل الأولى عن طريق استدعاء الأسلوب Activate.
قد يكون أو لا تحتوي الطريقة على وسيط (argument).
الوسيطة (argument) هي قيمة يتم توفيرها لأسلوب لتمكينها من تنفيذ إجراء ما.
لاستخدام "حساب وتنشيط الأسلوب" على كائن ورقة عمل ، لا تحتاج إلى توفير أي وسيطة.
("Worksheets("Sheet1
Worksheets("Sheet1").Activate
لاستخدام "إضافة أسلوب Add Method" على كائن مجموعة أوراق عمل ، تحتاج إلى توفير وسائط متعددة.أسلوب الكائن
هو إجراء يعمل عليه.
يمكن أن تحتوي الطريقة على وسيطات مطلوبة ليتم تحديدها و / أو يمكن أن تحتوي على وسيطات اختيارية يمكنك تجاهلها لتحديدها. تعتبر الوسيطات التي يتم عرضها بين أقواس مربعة في بناء جملة الطريقة اختيارية بينما تكون الأخرى مطلوبة.
يمكن توفير الوسيطات بترتيب الموضع الذي يتم تعريفه فيه في بناء جملة الطريقة ، حيث يتم فصل كل قيمة وسيطة مع فاصلة حتى بالنسبة للوسائط الاختيارية التي قد لا يتم تحديدها.
بدلاً من ذلك ، يمكن توفير الوسيطات بواسطة اسم الوسيطة (يُشار إليه باسم الوسيطات المسماة) وفي هذه الحالة يصبح الوضع الذي تم تحديده فيه غير ذي صلة.
سيتم أيضًا فصل كل وسيطة مسمى بفاصلة ، ولكن لا يتم الفصل مع الوسيطات الاختيارية غير المحددة.
أثناء تحديد الوسائط المسماة ، يمكنك تحديد اسم الوسيطة متبوعًا بنقطتين وعلامة يساوي (: =) والتي تتبعها قيمة الوسيطة ،أي: "ArgumentName: = "ArgumentValue
كيفية العمل مع أساليب الكائن في VBA
لنبدأ في إلقاء نظرة فاحصة على كيفية هيكلة بيان يشير إلى طرق كائن .
لهذه الأغراض ، سنقوم بفحص الماكرو التالي (يسمى "Delete_Inactive_Worksheets").
الغرض من هذا الإجراء الفرعي هو حذف جميع أوراق العمل باستثناء تلك النشطة حاليًا.
'Permits any person to use this code provided that the source is mentioned
'https://elshriefacademy.blogspot.com
Sub Delete_Inactive_Worksheets()
Dim my_Worksheet As Worksheet
For Each my_Worksheet In ThisWorkbook.Worksheets
If my_Worksheet.Name <> ThisWorkbook.ActiveSheet.Name Then
Application.DisplayAlerts = False
my_Worksheet.Delete
Application.DisplayAlerts = True
End If
Next my_Worksheet
End Sub
سنركز على العبارة التالية:
my_Worksheet.Delete
هذا البيان ضمن If ... ثم بيان في الماكرو أعلاه.
هذه العبارة البسيطة كافية لتوضيح القاعدة الأساسية لإنشاء مراجع إلى خصائص الكائن في Visual Basic for Applications:
أنت تشير إلى (أو استدعاء / وصول) طريقة من خلال وضع العناصر الثلاثة التالية:
- اسم كائن VBA ذي الصلة، في الحالة أعلاه ، هذا هو متغير الكائن my_Worksheet.
- نقطة (.).
- اسم الطريقة.
في الحالة أعلاه ، هذا هو "حذف" أو ، بشكل أكثر دقة ، أسلوب Worksheet.Delete.
Object.Method
إن النتيجة المعتادة لبنية هذا البيان هي أن العنصر بعد النقطة (الأسلوب في الحالة أعلاه) ينفذ على العنصر قبل النقطة (في العبارة أعلاه ، هذه هي الطريقة).
ملاحظة:
لاحظ أسلوب Worksheet.Delete بدلا من مجرد الإشارة إلى طريقة الحذف.
هذا مهم لأنه ، قد تتصرف طريقة معينة بشكل مختلف بناءً على الكائن الذي تم إقرانه.
على سبيل المثال ، عندما يتعلق الأمر بطريقة "حذف" ، يمكن أن يكون بناء الجملة والسلوك الدقيق مختلفين قليلاً اعتماداً على ما إذا كان يتم تطبيقه على كائن ورقة عمل (أسلوب Worksheet.Delete) أو كائن نطاق (طريقة Range.Delete).
في كلتا الحالتين ، تكون النتيجة النهائية هي قيام Excel بحذف الكائن ذي الصلة.
ومع ذلك ، عند تطبيقه على كائن نطاق ، تحتوي طريقة Delete على وسيطة إضافية والتي تسمح لك بتحديد كيف يقوم Excel بنقل الخلايا التي تحل محل أي خلايا محذوفة.
عند العمل باستخدام كائن ورقة عمل ، تعرض الطريقة (بشكل افتراضي) مربع حوار يطلب منك تأكيد حذف ورقة العمل.
أثناء متابعة العمل مع Excel و Visual Basic for Applications ، ستصبح هذه الفروق الدقيقة أكثر وضوحًا.
ومع ذلك ، قد تحتاج إلى التأكد من أن اختيارك لأساليب كائنات VBA يقوم بالفعل بالإجراءات التي تريدها عند العمل مع كائنات VBA التي تعمل بها.
كيفية العمل مع الحجج (أو معلمات) من أساليب الكائن في VBA
تعتبر الوسيطات (المعروفة أيضًا بالمعلمات) ، بشكل عام ، ما يسمح لك بتحديد الإجراء الذي تقوم به الطريقة مع كائن ما.
يمكنك التفكير في حجج الأسلوب بأنها قابلة للمقارنة مع الظروف.
بعض ، ولكن ليس كل ، أساليب الكائن في VBA تأخذ الحجج.
يمكن أن تكون الحجج إلزامية أو اختيارية.
إن موضوع الحجج ليس سهلاً كما قد تظن للوهلة الأولى.
على سبيل المثال :
هناك مشكلة غالباً ما تؤدي إلى الارتباك بين مبرمجي VBA الجدد وتتعلق بالحجج في الأساليب والخصائص.
لذلك ، لنلقي نظرة على أهم ما يجب معرفته فيما يتعلق بهذا الموضوع.
لأغراض توضيح كيفية العمل مع وسائط أساليب الكائن في VBA ، أقوم بالإشارة إلى الماكرو البسيط التالي (يسمى "Copy_Main_Worksheet").
ينسخ الماكروالمسمي Copy_Main_Worksheet ورقة العمل المسماة "Object Methods in VBA"
و يلصق النسخة بعد ورقة العمل المسماة "Sheet1".
Sub Copy_Main_Worksheet()
Worksheets("Object Methods In VBA").Copy After:=Worksheets("Sheet1")
End Sub
أنت تعرف بالفعل كيف تشير إلى أساليب الكائن ، لذلك ، من المحتمل أن تقوم بتعريف الجزء الأول من العبارة
Worksheets("Object Methods In VBA").Copy
كمرجع مقسم إلى العناصر الثلاثة التالية:
- تشير أوراق العمل إلى كائن ورقة العمل المسمى "Object Methods In VBA".
- النقطة (.) تفصل الجزء # 1 أعلاه عن الجزء رقم 3 أدناه.
- "Copy" يشير إلى طريقة Worksheet.Copy.
الجزء الثاني من العبارة ("After: = Worksheets (" Sheet1 هو الجزء الذي يحدد معلمات الطريقة ذات الصلة.
بتعبير أدق ، فإنه يحدد أن ورقة العمل المنسوخة توضع بعد الورقة المسماة "Sheet1".
يحتوي أسلوب Worksheet.Copy على معلمتين اختياريين (يمكنك تحديد أحدهما فقط):
المعامل الاختياري رقم 1: "قبل" ، والذي يحدد الورقة الموجودة أمام (أو قبل) التي يتم وضعها في ورقة العمل المنسوخة.
المعلمة الاختيارية رقم 2: "بعد" ، والتي تحدد ما هي الورقة التي يتم بعدها وضع ورقة العمل المنسوخة.
هذه هي المعلمة التي أستخدمها في هذا المثال. بمعنى آخر ، يتم وضع ورقة العمل المنسوخة بعد "Sheet1".
هذه الطريقة السابقة أعلاه لتحديد معلمات الطريقة ليست هي البنية الوحيدة التي يمكنك استخدامها.
لنلق نظرة على نفس المثال أعلاه ولكن بطريقة أخري
Sub Copy_Main_Worksheet()
Worksheets("Object Methods In VBA").Copy , Worksheets("Sheet1")
End Sub
لماذا هناك فاصلة (,) في بداية هذا الجزء من البيان أدناه؟
باستثناء تلك الفاصلة ، يكون بناء الجملة الأساسي لتحديد الوسائط بسيطًا نسبيًا:
Object.Method Argument_Value
بمعنى آخر ، لتحديد وسيطة لأسلوب كائن VBA ، يجب عليك:
الخطوة رقم 1: ارجع إلى طريقة الكائن بشكل مناسب باتباع البنية الأساسية الموضحة أعلاه.
في الحالة أعلاه ، هذا هو "أوراق العمل (" أساليب الكائن في VBA ").
الخطوة رقم 2: ضع مسافة () بعد اسم الطريقة.
الخطوة رقم 3: ضع قيم الوسيطات ذات الصلة.
في المثال أعلاه ، هذا ("Worksheets("Sheet1.
أنت تعرف بالفعل "ما هي" أوراق العمل ("Sheet1 ″): هي المعلمة After التي تحدد أن ورقة العمل المنسوخة توضع بعد "Sheet1".
هذا يترك الفاصلة (,) في البداية.
السبب في ظهور هذا الفاصلة (,) هو قاعدة بناء الجملة التالية:
في حالة استخدام أكثر من وسيطة واحدة ، فإنك تستخدم الفواصل (,) للفصل بينها.
هناك قاعدة ثانية مهمة لأغراض فهم ما يجري أعلاه:
عندما تعمل باستخدام طريقة تحتوي على وسائط اختيارية ، يمكنك استخدام عناصر نائبة فارغة للوسائط الاختيارية التي لا تستخدمها.
وهنا تتعقد الأمور، أن الحجج لكل طريقة كائن داخل VBA تحتاج إلى أن يتم سردها بالترتيب المناسب.
في هذه الحالة ، يحتوي الأسلوب Worksheet.Copy على اثنين من الوسائط الاختيارية
ولكن الحصرية: قبل وبعد. يستخدم Copy_Main_Worksheet الوسيطة الثانية فقط (بعد).
لذلك ، يتضمن رمز VBA الذي يظهر أعلاه فاصلة (,) وعنصر فارغ للوسيطة غير المستخدمة قبل.
كما ترى ، فإن بناء الجملة "الأساسي" لتحديد وسيطات الأسلوب ليس قابلاً للقراءة.