يعد النظام الأساسي برمجة VBA الذي يتم تشغيله في جميع منتجات Microsoft Office تقريبًا أحد أقوى الأدوات التي يمكن لأي شخص استخدامها لتعزيز استخدامهم لتلك المنتجات.
هذا دليل VBA الخاص بـ سوف يوضح لك المبتدئين كيفية إضافة قائمة Developer إلى تطبيق Office ، وكيفية إدخال نافذة محرر VBA ، وكيفية عمل عبارات VBA الأساسية وحلقاتها بحيث يمكنك البدء في استخدام VBA في Excel و Word و Powerpoint و Outlook و OneNote .
هذا يستخدم دليل VBA أحدث إصدار من منتجات Microsoft Office. إذا كان لديك إصدار سابق ، فقد ترى بعض الاختلافات الطفيفة من لقطات الشاشة.
كيفية تمكين محرر VBA واستخدامه
في أي من Office المنتجات المستخدمة في هذا الدليل ، قد تلاحظ أنه ليس لديك قائمة المطور المشار إليها. تتوفر قائمة المطورين في Excel و Word و Outlook و Powerpoint فقط. لا يقدم OneNote أداة لتعديل رمز VBA من داخل التطبيق ، ولكن لا يزال بإمكانك الرجوع إلى OneNote API للتفاعل مع OneNote من برامج Office الأخرى.
ستتعلم كيفية القيام بذلك في دليل Advanced VBA القادم.
تتضمن القائمة اليمنى جميع القوائم وأوامر القوائم المتاحة في تطبيق Office هذا. القائمة على اليمين هي تلك المتاحة أو التي تم تنشيطها حاليًا.
In_content_1 الكل: [300x250] / dfp: [640x360]->نصائح البرمجة العامة لـ VBA للمبتدئين
ستلاحظ عند فتح محرر VBA ، تبدو خيارات التنقل في اللوحة اليمنى مختلفة عن تطبيق Office إلى الآخر.
هذا لأن الكائنات المتوفرة حيث يمكنك وضع رمز VBA تعتمد على الكائنات الموجودة في التطبيق. على سبيل المثال ، في Excel ، يمكنك إضافة رمز VBA إلى مصنف أو كائنات ورقة. في Word ، يمكنك إضافة رمز VBA إلى المستندات. في Powerpoint ، فقط للوحدات النمطية.
لذا ، لا تفاجأ بالقوائم المختلفة. هيكل وبناء جملة رمز VBA هو نفسه عبر جميع التطبيقات. الاختلاف الوحيد هو الكائنات التي يمكنك الرجوع إليها والإجراءات التي يمكنك اتخاذها بشأن هذه الكائنات من خلال رمز VBA.
قبل أن نتعمق في الكائنات والإجراءات المختلفة التي يمكنك اتخاذها عليها عبر رمز VBA ، دعونا أولاً انظر إلى بنية VBA الأكثر شيوعًا وبناء الجملة الذي يمكنك استخدامه عند كتابة رمز VBA.
أين يمكنك وضع رمز VBA
عندما تكون في محرر VBA ، تحتاج إلى استخدام المربعين المنسدلين في أعلى نافذة التحرير لاختيار الكائن الذي تريد إرفاق الشفرة به ، وعندما تريد تشغيل الشفرة.
على سبيل المثال ، في Excel ، إذا اخترت ورقة العملو التنشيط، فسيتم تشغيل الرمز عند فتح ورقة العمل.
ورقة عمل أخرى تتضمن الإجراءات التي يمكنك استخدامها لتشغيل شفرة VBA الخاصة بك عندما تتغير ورقة العمل ، وعندما تكون مغلقة (غير نشطة) ، وعندما يتم تشغيل حساب ورقة العمل ، وأكثر من ذلك.
عند إضافة رمز VBA في المحرر ، قم دائمًا بإجراء تأكد من وضع شفرة VBA الخاصة بك على الكائن واستخدام الإجراء الصحيح الذي تريد استخدامه لتشغيل هذه الشفرة.
بيانات VBA IF
IF تعمل العبارة في VBA تمامًا كما تعمل في أي لغة برمجة أخرى.
يبحث الجزء الأول من عبارة IF ما إذا كان الشرط أو مجموعة الشروط صحيحة. يمكن ضم هذه الشروط بواسطة عامل تشغيل AND أو OR لربطها معًا.
أحد الأمثلة هو التحقق مما إذا كان التقدير في جدول بيانات أعلى أو أقل من درجة "اجتياز" ، وتعيين النجاح أو فشل الحالة في خلية أخرى.
إذا كانت الخلايا (2 ، 2)>75 ثم الخلايا (2 ، 3) = "تمرير" الخلايا الأخرى (2 ، 3) = "فشل"قوي >
إذا كنت لا تريد العبارة بالكامل في سطر واحد ، فيمكنك تقسيمها إلى عدة أسطر عن طريق إضافة رمز "_" في نهاية الأسطر.
إذا كانت الخلايا (2 ، 2)>75 ، ثم
الخلايا (2 ، 3) = "المرور" عدا ذلك
الخلايا (2 ، 3) = "فشل"
غالبًا ما يؤدي استخدام هذه التقنية إلى جعل الكود أسهل في القراءة والتصحيح.
VBA للحلقات التاليةقوية>
إذا كانت عبارات IF رائعة للمقارنات الفردية ، مثل المثال أعلاه للنظر إلى خلية واحدة. ولكن ماذا لو كنت ترغب في تنفيذ مجموعة كاملة من الخلايا والقيام بنفس عبارة IF في كل منها؟
في هذه الحالة ، ستحتاج إلى حلقة FOR.
للقيام بذلك ، ستحتاج إلى استخدام طول النطاق والتغلب على هذا الطول بعدد الصفوف التي تحتوي على البيانات.
للقيام بذلك ، تحتاج إلى لتحديد نطاق ومتغيرات الخلية ، وحلقة من خلالهم. ستحتاج أيضًا إلى تحديد عداد حتى تتمكن من إخراج النتائج إلى الصف المناسب. لذا ، يجب أن يحتوي رمز VBA على هذا السطر أولاً.
Dim rng As Range ، الخلية As Range
Dim rowCounter as Integer
حدد حجم النطاق على النحو التالي.
Set rng = Range ("B2: B7")
rowCounter = 2
أخيرًا ، يمكنك إنشاء حلقة FOR الخاصة بك للدخول إلى كل خلية في هذا النطاق وإجراء المقارنة.
For Each cell In rngIf cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
بمجرد تشغيل VBA النصي ، سترى ينتج جدول البيانات الفعلي.
VBA While Loops
A While Loop أيضًا عبر سلسلة من العبارات ، تمامًا مثل حلقة FOR ، ولكن شرط استمرار الحلقة هو شرط متبقي صواب.
على سبيل المثال ، يمكنك كتابة نفس حلقة FOR أعلاه ، كحلقة WHILE ، ببساطة باستخدام متغير rowCounter على النحو التالي.
While rowCounter < rng.Count + 2If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
ملاحظة: مطلوب حد rng.Count + 2لإنهاء عداد الصفوف عند 2 ويجب أن ينتهي في الصف 7 حيث تنتهي البيانات. ومع ذلك ، فإن عدد النطاق (B2: B7) هو 6 فقط ، وستنتهي حلقة While فقط عندما يكون العداد أكبر من العداد - لذلك يجب أن تكون قيمة rowCounter الأخيرة 8 (أو rng.Count + 2).
يمكنك أيضًا إعداد حلقة While على النحو التالي:
في حين أن rowCounter <= rng.Count + 1
يمكنك أيضًا قم بزيادة عدد النطاق فقط (6) بمقدار 1 ، لأنه بمجرد وصول متغير rowCounter إلى نهاية البيانات (الصف 7) ، يمكن أن تنتهي الحلقة.
VBA افعلها وحين تفعل الحلقات
تتشابه الحلقات إلى أن تفعل مع الحلقات بينما تكون مختلفة قليلاً.
في هذه الحالة ، ستعيد كتابة بينما حلقة أعلاه كما يلي ، كحلقة Do-While.
DoIf Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
في هذه الحالة ، لا يتغير المنطق كثيرًا ، ولكن إذا كنت تريد التأكد من المنطق تتم المقارنة بعد تشغيل جميع العبارات (مما يسمح لها جميعًا بالعمل بغض النظر عن مرة واحدة على الأقل) ، ثم حلقة "القيام بوقت" أو "القيام بوقت التنفيذ" هي الخيار الصحيح.
VBA حدد بيانات الحالة
النوع الأخير من البيان المنطقي الذي ستحتاج إلى فهمه لبدء هيكلة رمز VBA الخاص بك هو عبارات تحديد الحالة.
بالنظر إلى المثال أعلاه ، دعنا نقول أنك تريد أن يكون لديك طريقة تقدير لا تفشل. بدلاً من ذلك ، تريد تعيين تقدير حرف من A إلى F.
يمكنك القيام بذلك باستخدام عبارة Select Case التالية:
For Each cell In rngSelect Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
جدول البيانات الناتج بعد تشغيل هذا النص البرمجي لـ VBA ، يبدو أنه أدناه.
الآن تعرف كل ما تحتاج إلى معرفته لبدء استخدام VBA في تطبيقات Microsoft Office.