ياسر خليل أبو البراء قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 السلام عليكم ورحمة الله وبركاته إخواني الكرام ... ارتأيت أن موضوع المصفوفات بات من الأهمية بمكان بحيث لا يجب أن ننساه لما له من أهمية كبيرة في التعامل مع الأكواد بسرعة كبيرة جداً وخصوصاً في حالة التعامل مع كم هائل من البيانات .. فقررت أن أشارككم بما تقع عليه يدي من أكواد فيما يخص المصفوفات لنتعلم ونرتقي سوياً .. سأتناول كود بسيط بالتفصيل لنعرف ما هية المصفوفات وكيفية التعامل معها بشكل جيد الكود عبارة عن عمل حلقة تكرارية لعناصر المصفوفة من أول عنصر لآخر عنصر .. وإظهار العناصر في رسالة أو وضعها في نطاق أو التعامل معها كما تريد نبدأ بالكود بالكامل ثم نتناوله بالتفصيل Sub LoopInArray() Dim myArray As Variant Dim X As Integer myArray = Array("Yasser", "Khalil", "Officena", "Forum") For X = LBound(myArray) To UBound(myArray) MsgBox (myArray(X)) Next X End Sub السطر الأول هو بداية الإجراء الفرعي ويبدأ بكلمة Sub كما تعودنا يليه اسم الإجراء الفرعي ويفضل تسميته باسم يعبر عن الهدف من الكود ...قمت بتسميته LoopInArray حيث أننا سنتعامل بالحلقات التكرارية داخل عناصر المصفوفة .. وطبعاً لكل شيء بدأته لازم تقفله ..وقفلة الـ Sub بتكون بكلمة End Sub في نهاية الكود بالطبع السطر الثاني الإعلان عن متغير myArray وهو متغير للمصفوفة التي سنتعامل معها وقمت بتسميتها باسم مناسب وليس أي اسم (أفضل دائماً أن تكون أسماء المتغيرات معبرة عن المتغير والهدف منه ونوعه ..) السطر الثالث هو إعلان عن متغير من النوع Integer ووظيفة هذا المتغير أنه بمثابة عداد ..إذ أن من يعرف الحلقات التكرارية يعرف أنه لعمل حلقة تكرارية يستلزم أن يكون هناك عداد لهذه الحلقة التكرارية .. وقيمة المتغير X ستتغير مع كل حلقة .. أقصد أنه في أول لفة ستكون قيمة المتغير تساوي رقم البداية (فإذا كان رقم البداية 1 فإن المتغير يساوي 1) وفي اللفة الثانية تزداد قيمة المتغير بمقدار 1 ليصبح على سبيل المثال 2 وفي اللفة الثالثة يساوي 3 وفي اللفة الرابعة ..كمل إنت !! انتهينا من الأسطر التقليدية (تسمية الإجراء والإعلان عن المتغيرات) ... نتوقف قليلاً لللتجربة !! ماذا سنجرب يا ترى ؟ هل هناك ما يستدعي منا أن نجربه ونحن ما زلنا في البداية ولم نكتب أسطر فعلية للكود .. نعم لابد أن نتعلم شيئاً جديداً ومفيداً عند التعامل مع الأكواد ...... تطبيق : انسخ الكود السابق في موديول جديد ثم ضع الماوس داخل الإجراء الفرعي .. ومن قائمة View في محرر الأكواد اختر الأمر Local Window إنها نافذة ستجعل منك محترفاً في فهم الأكواد (صدقوني ستذهلون منها بشكل كبير جداً) ..إنها بمثابة نافذة لك لتدرك كيف يتم تنفيذ أسطر الكود سطر سطر انتبهوا لهذه النافذة بشكل كبير ... كيف سيتم التعامل مع هذه النافذة المدهشة ؟ الأمر في غاية اليسر والسهولة والبساطة .. ستستخدم من لوحة المفاتيح F8 وهو يمكنك من متابعة الكود سطر بسطر .. كفانا كلام نظري وننتقل للتطبيق .. ضع الماوس داخل الإجراء الفرعي (الكود) ثم اضغط F8 مرة واحدة فقط .. وانظر للنافذة التي كانت فارغة منذ قليل لقد أصبحت ثرية .. نعم ثرية .. بضغطة واحدة ستتمكن الآن من تحليل المتغيرات .. لقد تم وضع سطر باللون الأصفر على أول سطر بالكود كما تم وضع المتغيرات في النافذة بهذا الشكل في الناحية اليسار من النافذة توجد أسماء المتغيرات التي تم الإعلان عنها وفي العمود الأوسط قيمة المتغير ..فقيمة المتغير الأول Empty ما زالت المصفوفة فارغة لم يتم إضافة أي عنصر لها ، وقيمة المتغير الثاني لأنها من النوع Interger فتحمل القيمة صفر لأننا لم نضع قيمة لها بعد وفي العمود الثالث نوع المتغير فالمتغير الأول من النوع Variant وهذا النوع غالباً ما نستخدمه مع المصفوفة لأن المصفوفة مرنة ربما تحمل نصوص وربما أرقام وربما حتى نطاقات (موضوع يطول شرحه) إلى الخطوة الثانية والتي هي نفس الخطوة الأولى (حد يفكرني !!) محدش مركز !! ... الخطوة التانية اضغط F8 مرة تانية .. ماذا حدث ؟ لقد تجاوز السطر الأصفر أسطر الإعلان عن المتغيرات .. نعم لأنها أسطر غير قابلة للتنفيذ إنما تظهر المعلومات المرتبطة بهذه المتغيرات مع أول ضغطة على F8 بعد السطر الأول في الكود .. انتقل السطر الأصفر ليظلل السطر التالي .. ولم يحدث أي تغيير في نافذة الـ Local Window myArray = Array("Yasser", "Khalil", "Officena", "Forum") هل التنفيذ مرتبط بالسطر الأصفر ؟ نعم يتم تنفيذ السطر الملون بالأصفر بعد الخروج من السطر الأصفر وليس عند تظليل السطر الأصفر الخطوة الثالثة .. ماذا تتوقع أن يحدث بعد أن نضغط F8 للمرة الثالثة؟؟؟ فكر ثواني عشان تفهم اللعبة .. سيتم تنفيذ السطر الأصفر السطر الحالي عبارة عن تعيين قيم أو وضع عناصر للمصفوفة .. لدينا بعض الأسماء (وبما أن الأسماء نصوص فتم وضعها بين أقواس تنصيص) وهذه الأسماء سيتم وضعها داخل المتغير الذي قررنا أنه سيكون للمصفوفة انتبه انتبه ..لم أطلب منك أن تبدأ الخطوة الثالثة بعد ..!! فقط انظر لنافذة الـ Local Window على المتغير myArray وشوف القيمة هتلاقيها Empty أي أن المصفوفة فارغة (وكما بص على يسار اسم المتغير ..هل يوجد علامة زائد بجانب اسم المتغير myArray ؟؟ الإجابة لا يوجد) ابدأ تنفيذ الخطوة الثالثة ألا وهي نفس الخطوة الأولى ونفس الخطوة الثانية ..حد يفكرني !! محدش مركز .. اضغط F8 بردو (أنا مش عايز أتعبك أنا عايز تشوف وتتعلم وبعديها خلي دماغك يتكلم) ضغطت يا وائل ولا لسه على F8 ؟؟؟ تمام تمام الله ينور عليك ايه اللي حصل يا حوسو .. لما نحب نعرف ايه اللي حصل هنبص على الكود وعلى النافذة .. نبص الأول على الكود هنلاقي إنه تم الانتقال للسطر التالي وأصبح السطر التالي مظلل باللون الأصفر .. طيب الأهم إننا نبص على النافذة Local ونشوف المتغير myArray هنلاقي حاجة غريبة بتحصل .. حاجة بسيطة لكن مهمة المصفوفة اللي كانت فارغة Empty من شوية ومفيش علامة زائد جنبها .. أصبح فيه علامة زائد على يسار اسم المتغير ولما نبص في عمود القيمة هنلاقي كلمة Empty أصبحت مش موجودة .. دا لأنها بعد الانتقال من السطر اللي فات بقت المصفوفة فيها قيم .. نبص للعمود الثالث هنلاقي بردو فيه شيء اتغير ..نوع المتغير لم يتغير زي ما هو Variant بس فيه شيء إضافي .. هتلاقي ما بين قوسين بداية المصفوفة ونهاية المصفوفة بمعنى آخر المصفوفة اللي بنتعامل معاها دلوقتي فيها 4 قيم .. ولما نبص نلاقي الأرقام من 0 إلى 3 (افتراضي المصفوفة بتبدأ من الرقم 0 وليس الرقم 1 ) الأرقام دي عبارة عن فهرس للمصفوفة (زي فهرس كتاب) يعني مثلاً أول قيمة في المصفوفة اللي هي Yasser لها الرقم 0 في الفهرس .. والقيمة Khalil ليها رقم 1 وهكذا لنهاية القيم كل عنصر داخل المصفوفة ليها رقم في الفهرس .. عايز تتأكد من كلامي تعال على نفسك شوية ونتعب ونضغط علامة الزائد اللي على يسار اسم المتغير (خلي الصورة تتكلم شوية عشان أنا تعبت) زي ما إحنا شايفين الفهرس من 0 1 2 3 وكل عنصر له رقم في الفهرس وله قيمة يعني دلوقتي لو عايز أعرف تاني قيمة في المصفوفة هعمل ايه؟ ببساطة ممكن استخدم كلمة Msgbox ثم اسم المصفوفة ثم افتح قوس ثم أضع رقم القيمة المطلوبة ثم اقفل القوس MsgBox myArray(1) واحد يقولي إنت مش بتجيب تاني عنصر في المصفوفة ..طيب ليه كتبت واحد مش 2 (أقوله لأن المصفوفة بتبدأ من الصفر وليس من الواحد ..) فالواحد بمثابة 2 (عد من البداية ::: رقم صفر هو أول عنصر في المصفوفة .. رقم 1 هو ثاني عنصر في المصفوفة وهكذا) المهم عشان أنا بدأت أتوه من نفسي ننتقل للحلقة التكرارية ودي بيكون ليها عداد زي ما قلنا والعداد هنا X فبنقول For X وبعديها علامة يساوي ... بعد يساوي بداية الحلقة التكرارية يليها كلمة To ثم نهاية الحلقة التكرارية بداية الحلقة هتكون أول رقم فهرس في المصفوفة اللي هو في مثالنا يساوي صفر ، ونهاية الحلقة التكرارية هو آخر رقم في الفهرس اللي هو 3 وبدل ما نكتب من 0 إلى 3 (استخدمنا دالة بتجيب أول رقم في المصفوفة واسمها LBound ودي اختصار لكلمة Lower Bound أي الحد السفلي أي أول رقم في الفهرس ... وأيضاً بالمثل استخدمنا دالة عشان تجيب آخر رقم في المصفوفة والدالة هي UBound ودي اختصار لكلمة Upper Bound أي آخر رقم في الفهرس) طيب العداد لازمته ايه ؟؟ قلنا بيحمل القيمة الحالية ..فأول قيمة عندي هتكون صفر بالتالي قيمة X هتساوي صفر .. إحنا دلوقتي واقفين في السطر الملون باللون الأصفر مع بداية الحلقة التكرارية لو وقفنا بالماوس على كلمة X سيظهر تليح صغير في مستطيل أصفر صغير به قيمة المتغير ( في الصورة قيمة X تساوي صفر) وهو أول رقم في الحلقة التكرارية لأن رقم البداية صفر (والمتغير X يحمل قيمة أول رقم في بداية الحلقة) المهم اضغط F8 لتنتقل للسطر التالي وعايز تروح بالماوس وتقف على الكلمة دي myArray(X) هتلاقي مربع أصفر فيه القيمة Yasser وروح للـ X وقف عليها ستجد القيمة صفر أي أن المصفوفة المسماة myArray ثم نفتح قوس ونضع رقم الفهرس المطلوب ورقم الفهرس هنا هو صفر ..يحمل القيمة Yasser اضغط F8 لتظهر لك رسالة بقيمة أول عنصر في المصفوفة .. اضغط F8 مرة أخرى لتنتقل للفة الثانية في الحلقة .. ولاحظ أن الانتقال بعد ذلك سيكون ما بين السطرين MsgBox (myArray(X)) Next X القيمة X تتغير ويتغير معها القيمة التي تظهر في الرسالة .. أكمل الضغط على F8 لترى نتائج الكود بنفسك ... وعينك دائماً على نافذة Local لترى قيمة المتغير X وهي تتغير مع كل لفة وطبعاً عند وصول قيمة X لـ 3 تنتهي الحلقة التكرارية لأن نهاية الحلقة هو الرقم 3 أتمنى أن يكون الشرح واضح ومفيد للجميع مع تحياتي أخوكم ياسر خليل أبو البراء 14
مختار حسين محمود قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 على الموضوع على الشرح عليك ( باردة والله ) تحياتى 2
الـعيدروس قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 السلام عليكم الاخ والاستاذ ياسر خليل شرح رائع وموفق انت "جامعه" تقبل مروري 1
Yasser Fathi Albanna قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 الأستاذ والمعلم القدير الأخ الحبيب / ياسر خليل بسم الله ما شاء الله شرح رائع وموضوع أجمل كنت فى إحتياج لأتعلمه لأنى أتعامل دائما مع كم هائل جدا من التقارير التى بها بيانات وأريد التحكم بها ونقل بعض منها بأسلوب معين جزاك الله كل خير وأسكنك الفردوس الأعلى وزادك الله من فضله وعلمه تقبل خالص تحياتى وتقديرى لشخصكم الكريم 2
عبد العزيز البسكري قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 السّلام عليكم و رحمة الله بركاته أستاذي القدير " ياسر خليل أبو البراء " بارك الله فيك .. و في صحّتك و في أوقاتك و بجميع أمورك إن شاء الله ما تقدّمه خدمةً للجميع بمختلف مستوياتهم .. يعجز لساني عن التّعبير عنه تبارك الله ما شاء الله زادك من علمه و فضله فائق إحتراماتي و إعجاباتي 2
saad abed قام بنشر ديسمبر 3, 2015 قام بنشر ديسمبر 3, 2015 استاذ ياسر خليل كما قال ابو نصار انت جامعه شرح ممتاز بارك الله فيك وفقكم الله 2
ابراهيم الحداد قام بنشر ديسمبر 4, 2015 قام بنشر ديسمبر 4, 2015 السلام عيكم ورحمة الله بارك الله فيك دائما سباق بالخير 1
الصـقر قام بنشر ديسمبر 5, 2015 قام بنشر ديسمبر 5, 2015 (معدل) الاخ والاستاذ الحبيب / ياسر خليل رجعتنى لزمان وايام زمان ايام افتح الباب ونط من الشباك يا عبدالتواب بس فى سؤال مهم جدا هو ليه فتح البيبان مبيكونش غير بالشتاء معاك ؟؟؟؟؟؟؟؟؟؟ بجد روعه روعه روعه اسلوب شرح ممتع وجذاب ميخلكش تنام زى روتانا كدا اوعى تغمض عنيك جزاكم الله خيرا وبارك فيك لا تحرمنا من هذه الكنوز وبانتظار المزيد بس خليها صيف وشتاء **عايز بس اقول للاخوة الاعضاء ان الموضوع ده مهم جدا انا شخصيا اتعلمت من خلاله الكثير فى بداية البرمجه كنت امشى بـ F8 خطوه خطوه حتى اشاهد الكود زى فيديو كدا قدامى واتعلم منه وكمان الفايده الاكبر بعدما تكون محترف بالاكواد اكيد هيقابلك كود فيه خطأ وانت مش عارف اين موقع الخطا لاصلاحه وقتها هتستفيد منها فى اكتشاف اين الخطا بالكود فهى عامله زى دكتور الاشعه بتعملك تصوير للكود** تقبل تحياتى تم تعديل ديسمبر 5, 2015 بواسطه الصـقر 3
احمد الحاوي قام بنشر ديسمبر 5, 2015 قام بنشر ديسمبر 5, 2015 الموضوع متميز كالعادة .. والشرح مبسط ورائع ... جزاكم الله خيرا اخي وحبيبي في الله ..ابو البراء 1
إبراهيم ابوليله قام بنشر ديسمبر 8, 2015 قام بنشر ديسمبر 8, 2015 (معدل) اخى الحبيب ياسر مشكورا على الدرس الاكثر من رائع وهذا ما تعودناه منك دائما نسأل الله الا يحرمنا من علمك وان يزيدك من فضله وعلمه وان يتم عليك بنعمة الصحه والعافيه تقبل تحياتى تم تعديل ديسمبر 8, 2015 بواسطه إبراهيم ابوليله 1
ياسر خليل أبو البراء قام بنشر ديسمبر 24, 2015 الكاتب قام بنشر ديسمبر 24, 2015 السلام عليكم إخواني الكرام وأحبابي في الله بارك الله فيكم وجزاكم الله خيراً وجمع الله بيننا في الفردوس الأعلى أشكركم جميعاً على شعوركم الطيب وكلماتكم الرقيقة .. لا حرمني الله من صحبتكم تقبلوا تحياتي
ابو تيم قام بنشر ديسمبر 24, 2015 قام بنشر ديسمبر 24, 2015 الاخ ياسر خليل سلمت يداك على هذا الشرح وجعله في ميزان حسناتك
ياسر خليل أبو البراء قام بنشر ديسمبر 24, 2015 الكاتب قام بنشر ديسمبر 24, 2015 الأخ الفاضل أبو تيم مشكور على مرورك العطر بالموضوع وأتمنى تكون استفدت منه بشكل كبير جزيت خيراً على الدعاء الطيب ، ولك بمثل إن شاء الله
KHMB قام بنشر ديسمبر 25, 2015 قام بنشر ديسمبر 25, 2015 السلام عليكم ورحمة الله اخي العزيز الفاضل الاستاذ ياسر خليل بارك الله فيك وجزاك الله خير علي كل ماتقدمه لاخوانك وفي ميزان حسناتك إن شاء الله دمت ذخرا للإسلام والمسلمين
ياسر خليل أبو البراء قام بنشر ديسمبر 25, 2015 الكاتب قام بنشر ديسمبر 25, 2015 وعليكم السلام ورحمة الله أبا الحسن والحسين مرورك بالموضوع شرف كبير لي .. فقد عطرته بردك بارك الله فيك وجزاك الله خيراً على دعائك الطيب 1
محي الدين ابو البشر قام بنشر ديسمبر 25, 2015 قام بنشر ديسمبر 25, 2015 السلام عليكم ورحمة من لدنه وبركات موضوع جميل وشرح اكثر من رائع مشكور عليه حبذا لو درس آخر او شرح نفس الموضوع على مصفوفات ذات بعدين!!! بارك الله بك
ياسر خليل أبو البراء قام بنشر ديسمبر 25, 2015 الكاتب قام بنشر ديسمبر 25, 2015 أخي الكريم محي الدين مشكور على مرورك العطر بالموضوع .. والدروس إن شاء ربي مستمرة طالما أن هناك أنفاس المهم المتابعة والاستفادة من الأعضاء وترجمة النظري لعمل تطبيقي ..عايز أشوف أعمالكم المبهرة كما لا تنسوا إخوانكم المبتدئين أن تأخذوا بأيديهم وتساعدوهم في ما استصعب عليهم تقبل تحياتي
ابوحمزه المصرى قام بنشر ديسمبر 25, 2015 قام بنشر ديسمبر 25, 2015 فعلا موضوع متميز من ابو البراء المتميز ...... شكر خاص حدا لك
ياسر خليل أبو البراء قام بنشر ديسمبر 25, 2015 الكاتب قام بنشر ديسمبر 25, 2015 أخي الكريم صلاح قينك وفين أراضيك؟؟ بقالك فترة مختفي ..لعل غيابك خير ليك وحشة والله .. مشكور على مرورك العطر بالموضوع 1
ابوحمزه المصرى قام بنشر ديسمبر 26, 2015 قام بنشر ديسمبر 26, 2015 خير ان شاء الله اخى الفاضل ابو البراء شكرا على االاهتمام المشلكه بس انا شغال بفلاشة نت بعيد عنك وانت عارف ان الشبكه تمام ولا نقدر نقول غير كده ... احد .. احد 1
ياسر خليل أبو البراء قام بنشر مارس 2, 2016 الكاتب قام بنشر مارس 2, 2016 بارك الله فيك أخي الحبيب صلاح المصري ومشكور على مرورك العطر ... 1
أبوبسمله قام بنشر مارس 2, 2016 قام بنشر مارس 2, 2016 جزاك الله خيرا شرح جميل يا ابو البراء وبحاول انظم وقت لاتعلم كتابة الاكواد ربنا ييسرها ان شاء الله بالتوفيق ياغالى
ياسر خليل أبو البراء قام بنشر مارس 2, 2016 الكاتب قام بنشر مارس 2, 2016 وجزيت خيراً أخي الفاضل أحمد مشكور على مرورك العطر بالموضوع وبارك الله فيك ووفقك لما يحب ويرضى تقبل تحياتي
محمد الموافى قام بنشر مارس 2, 2016 قام بنشر مارس 2, 2016 جزاك الله خيرا شرح بطريقة مبسطة للمبتدئين وانا منهم جعله الله فى ميزان حسناتك احترامى
ياسر خليل أبو البراء قام بنشر مارس 2, 2016 الكاتب قام بنشر مارس 2, 2016 الحمد لله أن نال الموضوع إعجابكم أخي العزيز محمد الموافي وإن شاء الله يكون فتحة خير لمن أراد التعلم تقبل وافر تقديري واحترامي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.