ياسر خليل أبو البراء قام بنشر مارس 6, 2016 قام بنشر مارس 6, 2016 السلام عليكم ورحمة الله وبركاته إخواني وأحبابي في الله .. بصراحة أعجز عن البداية في هذا الموضوع نظراً لكثرة المعلومات في هذا الموضوع وتشعب الموضوع بشكل كبير ، ويرجع هذا التشعب إلى أهمية الموضوع لأن العمل بالمصفوفات يجعل الأكواد تكون أسرع بكثير من التعامل بالأكواد العادية خصوصاً مع البيانات الكثيرة .. الموضوع سيكون مستمر بإذن الله .. فأنا أؤمن بالحكمة التي تقول : قليل دائم خير من كثير منقطع .. سنبدأ في تناول الموضوع جزء جزء لكي نستطيع أن نهضم سوياً الموضوع ، ونستفيد من هذا الموضوع أقصى استفادة ممكنة نبطل رغي ونبدأ في المهم يعني ايه مصفوفة Array ؟ قبل ما نتعرف على المصفوفة .. عرفنا في دورة افتح الباب وادخل لعالم البرمجة "المتغير Variable" وقلنا إن المتغير وظيفته إنه بيخزن قيمة (سواء القيمة دي نص أو رقم أو تاريخ أو أي نوع من أنواع البيانات) .. بس المتغير بيخزن قيمة واحدة مثال : لو عايز أخزن القيمة النصية Officena Forums في متغير كنا بنعمل ايه ..؟! بنعلن عن المتغير من النوع النصي في سطر وفي السطر التالي بنقوم بتعيين قيمة للمتغير .. Sub StringVariable() Dim str As String str = "Officena Forums" End Sub طيب عشان نتأكد إن شغلنا مضبوط عايزين نعرف المتغير دا تم تخزين القيمة النصية فيه ولا لا .. ممكن نستخدم طريقة من اتنين : الطريقة الأولى باستخدام MsgBox لإظهار رسالة للمستخدم بقيمة المتغير .. MsgBox str الطريقة التانية ودي مهمة جداً لأننا هنستخدمها أثناء شرح المصفوفات لمتابعة تنفيذ أسطر الكود .. الطريقة باستخدام Debug.Print Debug.Print str طيب الطريقة دي هتظهر لنا إزاي : هتظهر النتائج في نافذة اسمها النافذة الفورية Immediate Window (طيب دي أجيبها منين وإزاي؟!) روح للقائمة الموجودة في محرر الأكواد وانقر على View هتلاقي Immediate Window أو باختصار من لوحة المفاتيح اضغط على Ctrl + G .. هتظهر النافذة الفورية في أسفل محرر الأكواد .. جرب الكود بالشكل الكامل بهذا الشكل Sub StringVariable() Dim str As String str = "Officena Forums" MsgBox str Debug.Print str End Sub طيب لما نحب ننفذ الكود يا ريت لا يتم التنفيذ مرة واحدة من خلال الأمر Run .... عايز التنفيذ يتم واحدة واحدة وسطر بسطر عشان تتعلموا إزاي تتابعوا عمل الكود .. عشان ننفذ الكود سطر بسطر ونتابع عايزين نظهر نافذة تانية كمان اسمها Local Window وبردو من نفس القائمة View وحاول تظبط النافذتين بحيث يكونوا بجانب بعضهم البعض كما في الصورة بحيث تتابع التنفيذ خلينا عمليين ونطبق أول بأول : روح لمحرر الأكود وأدرج موديول وانسخ الكود وأظهر نافذة Local Window والنافذة الفورية وضع مؤشر الماوس داخل الكود في اي سطر واستعد للانطلاق (على السادة المبرمجين ربط الأحزمة وشحذ الهمة والتركيز) اضغط F8 من لوحة المفاتيح هتلاقي أول سطر Sub StringVariable اتلون باللون الأصفر .. هنا بيتم الإعلان عن المتغيرات (بص في نافذة اللوكال) هتلاقي اسم المتغير str في عمود اسمه Expression ، وقيمته "" في عمود اسمه Value (طبعاً لسه فراغ لأن لسه مخزناش فيه حاجة) ، ونوعه String في عمود Type .. يعني ببساطة عرفنا تاريخ حياته في اللحظة دي ..عرفنا اسمه وقيمته ونوعه (الكلام دا رغم إنه ملوش علاقة بموضوع المصفوفات لكنه مهم جداً عشان نفهم إزاي نتعامل مع محرر الأكواد بشكل احترافي ونعلم نفسنا إزاي الكود بيتم تنفيذه) نضغط F8 تاني (هنا مفيش حاجة حصلت) السطر الأصفر انتقل للسطر ده str = "Officena Forums" ولكن محصلش أي تغيير في نافذة اللوكال ..دا لأن التغيير بيحصل لما بخرج من السطر الأصفر .. اضغط F8 للمرة التالتة وشوف نافذة اللوكال ولاحظ قيمة المتغير .. اتغيرت القيمة من فراغ إلى النص Officena Forums اضغط F8 للمرة الرابعة هتظهر لك رسالة فيها قيمة النص اضغط F8 للمرة الخامسة هيظهر قيمة المتغير في النافذة الفورية اضغط F8 للمرة السادسة والأخيرة على سطر End Sub لإنهاء الإجراء الفرعي بكدا نكون عرفنا إزاي هنتعامل مع تنفيذ الكود أثناء الدورة ... طولت في النقطة اللي فاتت شويتين بس كان لازم منها عشان ننتقل إلى مرحلة الاحترافية في التعامل مع الأكواد *************** طيب سؤال ايه علاقة المتغير بالمصفوفة؟ الإجابة إن المصفوفة متغير بس مش بيخزن قيمة واحدة (دا بيخزن مجموعة من المتغيرات دفعة واحدة) مثال عملي لفهم المصفوفة بشكل أعمق ::: نفترض أن لدينا 5 طلاب وليهم درجات ..نروح لورقة العمل ونكتب 5 أسماء بدرجاتهم كما بالشكل التالي نروح لمحرر الأكودا وننفذ الكود التالي ..الكود مش محتاج شرح الكود بسيط جداً Sub StudentMarks() With ThisWorkbook.Worksheets("Sheet1") 'الإعلان عن متغير لكل طالب Dim Student1 As Integer Dim Student2 As Integer Dim Student3 As Integer Dim Student4 As Integer Dim Student5 As Integer 'تعيين قيم المتغيرات من الخلايا المشار إليها Student1 = .Range("B1").Offset(1) Student2 = .Range("B1").Offset(2) Student3 = .Range("B1").Offset(3) Student4 = .Range("B1").Offset(4) Student5 = .Range("B1").Offset(5) 'طباعة الدرجات في النافذة الفورية Debug.Print "درجات الطلاب" Debug.Print Student1 Debug.Print Student2 Debug.Print Student3 Debug.Print Student4 Debug.Print Student5 End With End Sub أول سطر في الكود عشان نتعامل مع المصنف الحالي الذي يحتوي الكود .. والتعامل هيكون مع ورقة العمل Sheet1 ... الجزء الأول بيتم الإعلان عن المتغيرات لدرجات الطلاب من النوع Integer أي عدد صحيح (طبعاً دا مجرد مثال .. لأن الدرجات من المفترض إنها تكون Double لأن أكيد بيكون فيه كسور)>>المهم الجزء التاني بيتم تعيين قيم للمتغيرات (الدرجات) انطلاقاً من الخلية B1 ... بإزاحة بمقدار صف واحد لأسفل هيجيب قيمة الخلية B1 ... بإزاحة بمقدار صفين هيجيب الخلية B3 وهكذا الجزء التالت هيطبع درجات الطلاب في النافذة الفورية لتكون النافذة الفورية بهذا الشكل طيب المثال اللي فات 5 طلاب ..طيب لو عندي 100 طالب .. 500 طالب .. 1000 طالب .. 10000 طالب (هل سيكون التعامل مع طالب طالب ..؟؟ دا أكيد انتحار ) من هنا تأتي أهمية المصفوفة لتخزين جميع القيم في متغير واحد فقط .. يعني المصفوفة هتخليني أخزن القيم (درجات الطلاب) في متغير واحد فقط Sub StudentMarksArr() With ThisWorkbook.Worksheets("Sheet1") 'الإعلان عن متغير من النوع مصفوفة وأبعاد المصفوفة 5 عناصر 'لأن عدد الطلاب 5 طلاب والمطلوب تخزين درجاتهم في المصوفة Dim Students(1 To 5) As Integer 'قراءة درجات الطلاب من ورقة العمل Dim I As Integer For I = 1 To 5 Students(I) = .Range("B1").Offset(I) Next I 'طباعة الدرجات من المصفوفة في النافذة الفورية Debug.Print "درجات الطلاب" For I = LBound(Students) To UBound(Students) Debug.Print Students(I) Next I End With End Sub تم الإعلان عن اسم المتغير Students وطالما وضعنا أقواس بعد المتغير ..محرر الأكواد بيفهم إن دي مصفوفة .. طيب ايه الأرقام اللي ما بين الأقواس 1 إلى 5 دا اسم البعد الأول للمصفوفة (لأن المصفوفة دي عبارة عن عمود واحد اللي هو عمود الدرجات ودي بيسموها مصفوفة ذات بعد واحد (أحادية الأبعاد) وإن شاء الله هنتكلم عنها بالتفصيل نضع المؤشر داخل الكود ونضغط F8 ونبص في اللوكال ... ركز يا مان وشوف المتغير اللي اسمه Students في نافذة اللوكال هتلاقي علامة زائد انقر عليها زي ما إحنا شايفين اللوكال قالت كل حاجة ..قالت الأبعاد وقالت لنا على عناصر المصفوفة ورقم الفهرس لكل عنصر (الرقم اللي بين أقواس بعد اسم المصفوفة دي رقم الفهرس ) طبعاً لسه الكود في بدايتة فالقيم كلها ما زالت صفر .. ابدأ في التنقل باستخدام F8 كما تعلمنا وارجع بعد شوية .... لاحظت في الحلقة التكرارية اللي بدأت من 1 إلى 5 إن القيم الموجودة بدأت تتغير من أصفار إلى قيم (درجات الطلاب) لمزيد حول الحلقة التكرارية للمصفوفة راجع الموضوع التالي من هنا نيجي لآخر جزئية وهي طباعة الدرجات في النافذة الفورية ... هنا تم استخدام الحلقات التكرارية من بداية المصفوفة باستخدام كلمة LBound يليها اسم المصفوفة ، إلى نهاية المصفوفة باستخدام كلمة UBound يليها اسم المصفوفة .. ببساطة الكلمتين دول بيجيبوا الحد الأدنى للمصفوفة (1 كما في المثال) والحد الأعلى للمصفوفة (5 كما في المثال) قم بالضغط على F8 واحدة واحدة وشوف التغيرات اللي بتحصل في نافذة اللوكال والنافذة الفورية عشان تقدر تستوعب عمل الكود بشكل جيد إلى هنا حانت لحظة النوم وبدأ النوم يداعب جفوني ، ألتقي بكم على خير إن شاء الله وإلى لقاء آخر وموضوع متجدد بإذن الله دمتم على طاعة الله والسلام عليكم ورحمة الله وبركاته 12
أبوبسمله قام بنشر مارس 6, 2016 قام بنشر مارس 6, 2016 اولا قبل الاطلاع على الموضوع والمعلومات الدسمه حبيت اقولك جزاك الله كل خير يا ابو البراء جعله الله فى موازين حسناتك تقبل وافر التحيه والتقدير وفقك الله لما يحبه ويرضاه ورزقك الفردوس الاعلى جزاك الله كل خير يا ابو البراء 1
ياسر خليل أبو البراء قام بنشر مارس 6, 2016 الكاتب قام بنشر مارس 6, 2016 بارك الله فيك أخي الحبيب أحمد وجزيت خيراً على دعائك الطيب بالنسبة للموضوع المعلومات ليست دسمة ..كل ما في الأمر أنني أقوم بتفصيل الموضوع ولذا يبدو أن الموضوع دسم ولكن في حقيقة الأمر أنها معلومات بسيطة جداً ومجرد بدايات ولكنها في غاية الأهمية حيث أن فهم البدايات سيمكنك من التعامل مع الأكواد المتقدمة بسهولة ويسر تقبل تحياتي
محمود_الشريف قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 (معدل) أخى الحبيب و أستاذى القدير // ياسر خليل مبدع كعادتكم ، تسلم ايدك يا كبير أساسيات فى غاية الروعة والدقة بارك الله فيكم وزادكم الله من فضله ومن علمه وأسأل رب العرش العظيم أن يعينكم على تكملة هذه النوعيات من الدروس التى تمثل اساسيات لا غنى عنها فى هذا المجال وجزاكم الله خير الخير وتقبل منى وافر الاحترام والتقدير تم تعديل مارس 7, 2016 بواسطه محمود_الشريف 1
محي الدين ابو البشر قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 السلام عليكم ورحمة من لدنه وبركات بارك الله بجودك وجعله في ميزان حسناتك وسر الله خاطرك جزاك الله كل خير تقبل تحياتي هذه المرة قبلي 1
ابوحمزه المصرى قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 والله تعجز الكلمات فى التعبير عن هذا الموضوع القيم .. بسم الله ماشاء الله .. بارك الله فيك اخى الفاضل ابو البراء وزادك علماً نافعاً
عبد العزيز البسكري قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 السّلام عليكم و رحمة الله و بركاته ألف شكر أخي الغالي و استاذي القدير " ياسر خليل أبو البراء " بارك الله فيك جزاك الله خيرًا و زادها بموازين حسناتك " إنَّ الله يحبّ إذا عمل أحدكم عملاً أنْ يتقنَه " و الحمد لله ..مواضيعك و أعمالك و تدخّلاتك و شروحاتك و حلولك كلّها باسم الله ما شاء الله أكثر من متقنة وفّقك الله لما يحبّه و يرضاه و نفع بك الاسلام و المسلمين موضوع شيّق يستحق المتابعة .. مميّز و ممتاز كعادة مواضيعك فائق إحتراماتي 1
ابراهيم الحداد قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 اخى الحبيب السلام عليكم ورحمة الله ايقونة المنتدى وزهرتها الباسقة موضوعاتك عبارة عن مجموعة من الكنوز هنيئا لمن يعرفها حقيقة لا اجد تعبيرات مناسبة كى اصف بها اعجابى ولن اقول سوى بارك الله فيك 1
خالد الرشيدى قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 السلام عليكم استاذى القدير / ابو البراء جزاك الله خيراً .. حقاً نحن بحاجه الى مثل تلك الشروحات .. اعانك الله عليها واتمنى من حضرتك ان كل درس جديد يضاف اسفل سابقة مباشرة دون التعليقات حتى يسهل تجميع الدروس بالنسبه للقارئ خالص تقديرى واحترامى لشخصكم الكريم 1
ياسر خليل أبو البراء قام بنشر مارس 7, 2016 الكاتب قام بنشر مارس 7, 2016 أخي الحبيب محمود الشريف أخي الغالي محي الدين أبو البشر أخي الفاضل صلاح المصري أخي العزيز عبد العزيز البسكري أخي المتميز زيزو العجوز أخي المحبب لقلبي خالد الرشيدي صاحب الأعمال الخفية بارك الله فيكم جميعاً وجزيتم خيراً على تسجيعكم الدائم لي .. لا تعرفون مدى سعادتي بتشجيعكم لي وبتقديركم المميز لي رغم أن ما قدمته بسيط جداً مقارنةً بما تقدمونه جمعني الله وإياكم في مستقر رحمته يوم القيمة إنه ولي ذلك والقادر عليه إن شاء الله بالنسبة للحلقات الجديدةسوف يتم إدراجها في مشاركة في ترتيبها بشكل عادي وفي النهاية يمكن تجميع المشاركات كلها في موضوع واحد مستقل .. بارك الله فيكم وجزيتم خير الجزاء ، ودمتم على طاعة الله تقبلوا تحياتي 1
رجب جاويش قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 أخى الحبيب / ياسر خليل جزاك الله خيرا على هذا الموضوع القيم سر على بركة الله ونحن جميعا فى انتظار المزيد لنتعلم من ابداعاتكم تقبل تحياتى وتقديرى 1
ياسر خليل أبو البراء قام بنشر مارس 7, 2016 الكاتب قام بنشر مارس 7, 2016 أخي الغالي رجب جاويش أنتم من علمتمونا الإبداع ..فإذا كنت قمراً فأنت النجم في سماء المنتدى (القمر غير منير بذاته إنما يعكس أشعة الشمس ..بينما النجم مضيئ بذاته) بارك الله فيك وجزاك الله كل خير ... تقبل وافر تقديري واحترامي 1
نايف - م قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 أستاذي الكريم شكرا جزيلا للشرح الرائع و المبسط بالصبر ننتظر الدرس التالي أستاذي ملاحظة : لم أستطع الرد على موضوعك باستخدام الموزيلا و لم استطع الأعجاب و لم استطع كتابة موضوع جديد اضطررت أن استخدم الكروم
ياسر خليل أبو البراء قام بنشر مارس 7, 2016 الكاتب قام بنشر مارس 7, 2016 مشكور أخي العزيز نايف على مرورك العطر وكلماتك الطيبة ربنا ييسر الأمور إن شاء الله .. سنحاول أن نعطي فرصة للأعضاء لدراسة جزء جزء .. حتى يتم هضم الموضوع بشكل جيد ... تقبل تحياتي 1
قلم-الاكسل(عبدالعزيز) قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 لو يتابع المتابع تعليقاتك ودروسك لأصبح عضو في اتحاد مطوري لغات البرمجة جزاك ربنا من خيراته واسبغ عليك من نعماته درس جميل وسهل وميسور لا تحرمنا من جمايلك كما يقول احد المتوترين "المغردين في تويتر" افضل الصدقة ان تتعلم علما ثم تعلمه لأخيك 1
احمد العدوى قام بنشر مارس 7, 2016 قام بنشر مارس 7, 2016 السلام عليكم ماشاء الله ربنا يبارك فيك ماشاء الله ربنا يزيدك من علمه ماشاء الله ربنا يتم عليك نعمته السلام عليكم 1
ياسر خليل أبو البراء قام بنشر مارس 7, 2016 الكاتب قام بنشر مارس 7, 2016 أخي العزيز عبد العزيز أخي الفاضل أحمد العدوي بارك الله فيكما وجزاكما الله خير الجزاء ...مشكور على كلماتكم الطيبة ودعائكم الطيب جمعني الله وإياكم في مستقر رحمته يوم القيامة تقبلوا تحياتي
ياسر خليل أبو البراء قام بنشر مارس 7, 2016 الكاتب قام بنشر مارس 7, 2016 أخي الكريم ناصر سعيد لما لا تستجيب لتغيير اسم الظهور للغة العربية ..نحب أن نرى اسمك ساطعاً باللغة العربية بارك الله فيك وجزيت خيراً على مرورك العطر بالموضوع ، وفي انتظار متابعتك للموضوع للاسفادة منه تقبل تحياتي
الزباري قام بنشر مارس 10, 2016 قام بنشر مارس 10, 2016 جزاك الله الله خيراً يا أبا البراء.. أكمل فنحن متشوقين للمزيد 2
ياسر خليل أبو البراء قام بنشر مارس 10, 2016 الكاتب قام بنشر مارس 10, 2016 وجزيت خيراً بمثل ما دعوت لي أخي الحبيب الزباري وإن شاء الله نتمهل قليلاً لحين يستوعب الأعضاء الجزء الأول لكي تكون الحلقات الجديدة مفهومة .. لما العجلة؟! (ليه ميكونش موتوسيكل أو أتوبيس ) خلينا نتناول الموضوع بروية لكي نستفيد منه أقصى استفادة ممكنة تقبل وافر تقديري واحترامي 1
saad abed قام بنشر مارس 12, 2016 قام بنشر مارس 12, 2016 اخى ياسر جزاك الله خيرا استكمل دروسك فنحن في الانتظار
محمد حسن المحمد قام بنشر مارس 12, 2016 قام بنشر مارس 12, 2016 أخي الحبيب ياسر أبو البراء المحترم .. السلام عليكم ورحمة الله وبركاته : هل يمكن لطالب جاء متأخراً أن يلحق بصفوف الدراسة أم أن القطار قد فات إلى دورة أخرى.. فإن كان هناك فرصة نستدرك ما فات لنضع حقائبنا على ظهورنا ..ثم نلتزم مقاعدنا ...لنزداد علماًمما آتاكم الله "نرفع درجاتٍ من نشاء وفوق كل علم عليم" زادكم الله علماً حلماً ورفعة وتواضعاً ...آمين و
ياسر خليل أبو البراء قام بنشر مارس 12, 2016 الكاتب قام بنشر مارس 12, 2016 أخي الغالي ابو يوسف وعليكم السلام ورحمة الله وبركاته بارك الله فيك وجزيت خيراً على مرورك العطر بالموضوع لقد حجزت لك مقعداً بجانبي فأنت من المميزين .. لن تجلس بجوار باقي الطلبة بل ستجلس بجانبي ، ومقامك أعلى من ذلك عندي وإن شاء الله تقدر تتابع معانا سلسلة الدروس إن شاء الله .. ما زلنا في البداية ولن أقدم جديد حتى يتسع الوقت للجميع لدراسة الموضوع بتأني وروية .. والمطلوب تقديم أمثلة على الجزء السابق ..نريد أمثلة تطبيقية على ما تقدم شرحه .. لا أريد أمثلة مشابهة تماماً أو نفس الأمثلة الموجودة في الشرح ، بل أريد ابتكار إبداع رؤية جديدة لما تعلمتموه تقبل وافر تقديري واحترامي 1
الصـقر قام بنشر مارس 12, 2016 قام بنشر مارس 12, 2016 استاذى الحبيب ابوالبراء انا متعود على دروسك بالشتاء لكن بالصيف جديده دى براك الله فيك وزادك من علمه وفضله اتمنى تذهب بالشرح الى ابعد مدى لان هذا الموضوع من المواضيع الهامه بال VbA تقبل تحياتى اخوك و تلميذك / حسام 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.