الدرس الرابع الجمل الشرطيه في vba
الجمل الشرطية وكيفية استخدامها, ولما لها من الاهمية الكبيرة في الاستخدامات المتعددة والمتكررة حتى يكاد لا يخلو يرنامج من استخدام احدى الدوال الشرطية المتعددة ، وبالنسبة الي اجزم انها اهم جمل ودوال ال vba لذلك سابدا بعمل سلسلة لشرح هذه الدوال والجمل
وسنقوم بتداولها بطرق سهلة حتى تتم الفائدة للكل ومهما كان مستوى المتابع
➖ اما الجمل والدوال التي سنتاولها فهي :
1. جملة اذا المشروطة if ... then
2. جملة الانتقال الشرطية if .. then .. else
3.جملة الانتقال الشرطية if .. then .. else المتعددة والمتشابكة
4.جملة التفرغ المتعددة case
5.دالة التحويل switch
6.دالة الاختيار المرتب choose
الموضوع ليس معقد واسهل مما تتوقعونه وستلاحظون الامكانات الهائلة لهذ الدوال والجمل وتعد من اهم دوال ال vba
لكن يجب فهمها بالطريقة الصحيحة ومتابعتها والتطوير في استخدامها
جملة شرط If Then البسيطه او التي تحتوي على شرط واحد
تحتوي جملة If Then على تعبير منطقي يسمح بشرط واحدة أو أكثر.
إذا كان الشرط صحيحًا ، فسيتم تنفيذ العبارات الموجودة ضمن الشرط (الشروط). إذا كان الشرط خطأ ، يتم تنفيذ العبارات بعد حلقة If
مثال
Private Sub If_demo_Click () Dim x As Integer Dim y As Integer x = 20 y = 10 If x > y Then MsgBox "x اكبر من y" End If End Sub
شرح مثال
عرفنا متغيرين x, y ثم اعطينا لكل متغير قيمه رقمية وفي شرط If x > y Then اذا كانت x اكبر من y يطبع رساله x اكبر من y
القاعده الرئيسية لكتابه شرط If Then واحد
جملة If Then Else المركبه في vba اكسل
تحتوي جملة If على تعبير منطقي يسمح بعبارة واحدة أو أكثر ، إذا كان الشرط صحيحًا ، يتم تنفيذ العبارات الموجودة ضمن الشرط If. إذا كان الشرط خاطئًا ، فسيتم تنفيذ العبارة ضمن الشرط الآخر.
مثال
Private Sub If_demo_Click () Dim x As Integer Dim y As Integer x = 20 y = 40 If x > y Then MsgBox "x is greater than y" Else MsgBox "y is greater than x" End If End Sub
شرح مثال
نفس مثال سابق لكن اضفنا شرطين اي عندما وضعنا شرط If x > y Then اذا تحقق شرط يتم طباعه عباره x واذا لم يتحقق شرط يتم طباعه عباره y
جملة شرط ElseIf متعدده والمتشابكه في vba اكسل
تسمح عبارة If بواحد أو أكثر من عبارات If Else التي تحتوي على تعبير منطقي. ثم يتبعه بيان Else افتراضي يتم تنفيذه عندما تصبح جميع العبارات False او true
لا يمكن اختزال كل شرط إلى بيانين بسيطين. لديك أيضًا أكثر من خيارين في التعليمات البرمجية الخاصة بك. في هذه الحالة ، يمكنك استخدام جملة ElseIf.
يمكنك استخدام أكثر من جزء أو جزأين ElseIf ، بقدر ما تحتاج كما هو موضح في المثال أدناه
Private Sub If_demo_Click () Dim x As Integer Dim y As Integer x = 40 y = 40 If x > y Then MsgBox "x is greater than y" ElseIf y > x Then MsgBox "y is greater than x" Else MsgBox "x and y are Equal" End If End Sub
شرح المثال
عرفنا متغيرين x, y ونطينه كل متغير قيمه 40 ثم وضعنا الشروط
الشرط الاول اذا كانت قيمه x اكبر من y اطبع عباره x
الشرط الثاني اذا كانت قيمه y اكبر من x اطبع عباره y
ينتهي الكود بالشرط الثالث حيث تساوت قيمه y, x
مثال اخر عن الشرط المتعدد
الكود في الصوره عباره عن ثلاث شروط عند تنفيذ الكود تظهر شاشه تحتوي على 3 ازرار Yes, No, Cancel عند الظغط على اي زر تظهر رساله الزر نفسه كما مبين في الصوره
Switch التبديل في vba اكسل
لتنفيذ مجموعة من العبارات اعتمادًا على قيمة التعبير ، فإننا نستخدم حالة التبديل. هنا ، تسمى كل قيمة حالة ، ويتم تشغيل المتغير بناءً على كل حالة. يتم تنفيذ حالة العبارة الأخرى إذا كان تعبير الاختبار لا يتطابق مع أي حالة من الحالات المحددة من قبل المستخدم.
الحالة الأخرى عبارة عن بيان اختياري ضمن الحالة المختارة. ومع ذلك ، فمن الممارسات البرمجية الجيدة دائمًا أن يكون لديك عبارة Case Else.
المثال التالي يوضح استخدام Switch
Private Sub switch_demo_Click () Dim MyVar As Integer MyVar = 1 Select Case MyVar Case 1 MsgBox "الرقم هو رقم مركب" Case 2 MsgBox "الرقم هو رقم زوجي" Case 3 MsgBox "الرقم هو رقم فردي" Case Else MsgBox "الرقم غير معروف " End Select End Sub
النتيجه هي تكون رقم فردي في الشرط الثالث