في هذا القسم ، سننظر في ماهية VBA ، نظرًا لأن وحدات الماكرو مكتوبة عليها.
VBA هي لغة برمجة مضمنة (تعني Visual Basic for Applications) تم تطويرها بواسطة Microsoft. هذه اللغة ليست مستقلة ، ولكنها مخصصة فقط لأتمتة العمليات في حزمة MS Office. يستخدم VBA على نطاق واسع في Excel وكذلك في Access و Word والبرامج الأخرى في الحزمة.
VBA هي لغة برمجة بسيطة يمكن لأي شخص تعلمها. بمجرد أن تتعلمها ، ستتمكن من إعطاء أوامر Excel ، وما يجب فعله بالأعمدة والصفوف وقيم الخلايا ونقل / إضافة / فرز أوراق العمل وعرض الرسائل المبرمجة مسبقًا وكتابة الصيغ والوظائف الخاصة بك والمزيد. جوهر اللغة هو العمل على الأشياء.
للعمل مع كود VBA ، نحتاج إلى محرر (Visual Basic Editor) ، والذي تم تثبيته بالفعل في Excel افتراضيًا. يمكنك فتحه بالضغط على مجموعة المفاتيح " Alt + F11".
دعونا نفهم ماهية الكائن في VBA.
VBA الكائن هو عنصر ، جسيم هيكلي Excel ، وهو: كتاب ، ورقة ، نطاق ، خلية.
VBA كائنات لها تسلسل هرمي ، أي أنها تابعة لبعضها البعض. من الناحية التخطيطية ، يمكن تمثيل الهيكل الهرمي في Excel على النحو التالي:
أهم عنصر هو Application ، والذي يتوافق مع برنامج Excel نفسه. يأتي بعد ذلك Workbook (كتاب) ، Worksheet (ورقة) ، Range (نطاق ، أو خلية فردية).
على سبيل المثال ، للإشارة إلى الخلية "A1" في ورقة العمل ، سنحتاج إلى كتابة المسار التالي ، مع مراعاة التسلسل الهرمي:
Application.Workbooks ("Archive") .Worksheets ("Sheet1") .Range ("A1")
وهكذا ، تعلمنا أن نشير إلى أصغر كائن في خلية Excel.
في المقابل ، تنتمي كائنات VBA إلى "المجموعات".
VBA المجموعة هي مجموعة (مصفوفة) من كائنات من نفس الفئة (مجموعة من الكتب والأوراق وما إلى ذلك). نعم ، جميع كائنات Worksheet هي عناصر من مجموعة Worksheets. في المقابل ، فإن المجموعة هي أيضًا كائن.
يمكن أن تنتمي نفس الكائنات إلى عدة مجموعات. على سبيل المثال ، تنتمي كائنات Worksheet أيضًا إلى المجموعة Sheets. تحتوي مجموعة Sheets على كافة الأوراق الموجودة في المصنف - كلا المخططين ، اللذين يعتبران أيضًا أوراقًا (Chart) ، وأوراق البيانات (Worksheet).
المجموعات التالية موجودة في VBA Excel:
كل كائن في VBA له خصائص. على سبيل المثال ، يحتوي كائن Range على خاصية Value أو Formula.
Worksheets ("Sheet1") .Range ("A1") .Value أو Worksheets ("Sheet1") .Range ("A1") .Formula
في هذا المثال ، تعرض الخاصية القيمة التي تم إدخالها في الخلية أو الصيغة التي تم إدخالها.
أيضًا ، من خلال الخاصية Formula ، لا يمكنك الحصول على الصيغة فحسب ، بل يمكنك أيضًا كتابتها:
MsgBox Range ("A1") .Formula - سوف نتلقى رسالة بالصيغة الموجودة في الخلية "A1" ؛
Range ("B12") .Formula = "= 2 + 6 * 100" - أدخل الصيغة "= 2 + 6 * 100" في الخلية "B12".
الآن دعونا نلقي نظرة على كيفية التعامل مع محتويات نطاق أو خلية. لهذا ، هناك ما يسمى بالطرق (أوامر "ماذا تفعل") في VBA. عند كتابة التعليمات البرمجية ، يتم فصل العمليات عن الكائن بنقطة ، على سبيل المثال:
Range ("A1") .Select أو Cells (1،1) .Select
تحدد هذه الطريقة لتحديد الخلية (Select) "A1".
بعد ذلك ، دعنا نحذف القيمة في هذه الخلية. لهذا ، سنكتب الكود التالي.
Selection.ClearContents
هنا "يأخذ" البرنامج ما اخترناه (Selection) ويمسح محتوياته (ClearContents).