أفضل دليل VBA (للمبتدئين) ستحتاج إليه في أي وقت


يعد النظام الأساسي برمجة 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 القادم.

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

    In_content_1 الكل: [300x250] / dfp: [640x360]->
    • يجب أن ترى مطور البرامج في القائمة على اليمين ، ولكن لن يتم تنشيطه. ما عليك سوى تحديد مربع الاختيار لتنشيط قائمة المطورين.
      • إذا كنت لا ترى Developerمتاحًا على اليمين ، فقم بتغيير اليسار اختيار الأوامرمن القائمة المنسدلة إلى جميع الأوامر. ابحث عن Developerمن القائمة وحدد إضافة>في الوسط لإضافة تلك القائمة إلى الشريط.
      • حدد موافقعند الانتهاء.
      • بمجرد أن تكون قائمة Developer نشطة ، يمكنك العودة إلى نافذة التطبيق الرئيسية الخاصة بك وتحديد Developerمن القائمة العلوية.
      • ثم حدد عرض الرمزمن مجموعة عناصر التحكم في الشريط لفتح نافذة محرر VBA.
        • سيؤدي هذا إلى فتح نافذة محرر VBA حيث يمكنك كتابة الرمز الذي ستتعلمه في الأقسام القليلة التالية.
          • حاول إضافة قائمة Developer إلى عدد قليل من تطبيقات Office التي تستخدمها يوميًا . بمجرد أن تشعر بالراحة عند فتح نافذة محرر VBA ، انتقل إلى القسم التالي من هذا الدليل.
          • نصائح البرمجة العامة لـ 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 rng
            If 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 + 2
            If 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 افعلها وحين تفعل الحلقات

            تتشابه الحلقات إلى أن تفعل مع الحلقات بينما تكون مختلفة قليلاً.

            • تقوم While Loopبالتحقق مما إذا كانت هناك شرط صحيح في بداية الحلقة.
            • يتحقق Do-While Loopمن صحة الشرط بعد تنفيذ العبارات في الحلقة.
            • تنفيذ حلقة مستمرةتتحقق مما إذا كانت الحالة لا تزال غير صحيحة بعد تنفيذ الحلقة.
            • في هذه الحالة ، ستعيد كتابة بينما حلقة أعلاه كما يلي ، كحلقة Do-While.

              Do
              If 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 rng
              Select 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.

              تصميم نظام ( برنامج ) محاسبى كامل على الآكسل - المحاضرة 1 - تصميم واجه النظام وعمل دليل الحسابات

              المنشورات ذات الصلة:


              29.01.2020