اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

حصريا : دورة كاملة في شرح VBA وتطبيقاته في إكسيل


الردود الموصى بها

إخواني الأعزاء أعضاء المنتدى الجميل ، تعبت مرارا وتكرارا وإلحاحا ( حلوة إلحاحا دي ) على المشرفين يشرحوا لنا VBA وأوامره وأكواده وشفراته والتطبيقات الممكنة بيه وربطه باكسيل ، المهم لم أجد مجيب علما بان الموضوع لو كان اتفتح من البداية وكل مشرف حط له كود كل يوم كان زمانه خلصنا منه دلوقتي ، وكان الشرح هيبقى على ايد اساتذة فاهمين ومجربين انا لا الومهم بالطبع عارف ان كلهم مشغولين ، وعلشان كده قلت اترجم كتب ومواقع في الموضوع ده ولقيت إني بستفيد بصراحة ، وحبيت إن الكل يستفيد معايا ، بمعنى آخر أنا زيي زيكم بالضبط معلوماتي في الفيجوال مع اكسيل زي معلوماتكوا في الكيمياء الحيوية وعلاقتها بالعدسات اللاصقة ههههههههه ...

ومع بعض واحدة واحدة خالص واللي هخلصه ترجمة وتنسيق أعرضه ليكم ، بداية بتعريف VBA , VBE والواجهة والأوامر وكيفية كتابة الأكواد والعمليات البرمجية ، وفي النهاية هعملكو زي مرجع شامل بكل الاوامر الممكنة وتعريف موجز بالامر او الكود وبيعمل ايه ومثال لكل واحد ، والله المستعان

بندأ وبعون الله في الدرس الاول

الجزء الأول ( مقدمة إكسيل VBA )

في هذا الجزء سوف تتعلم :

** لماذا إكسيل VBA

** محرر أوامر VBE

الغرض من هذه الدورة هو إظهار كيف يمكن لمستخدمي إكسيل استخدام برمجة التطبيقات (VBA ) التي تأتي مع برامج أوفيس مجانا ..

هذه الأداة ستساعدك إلى حد كبير على تعزيز قوتك في استخدام البرنامج الأكثر شعبية في جداول البيانات باستخدام VBA .

برمجة الكمبيوتر في أيامنا هذه أصبحت أسهل بكثير ، وحتى ما يسمون الآن أناس عاديين يعرفون أن البرمجة هي ببساطة وضع تعليمات يقوم الكمبيوتر بتنفيذها . وبرمجة الإكسيل تعني أنه يمكنك إعطاء تعليمات وأوامر لإكسيل ليقوم بأدائها تلقائيا ، تلك التي كنت تقوم أنت بها يدويا ، وذلك يوفر وقتك كثيرا .

أثناء قراءتك لهذا فإنها ستكون المراهنة على تصبح مبرمج إكسيل ، مما قد يكون نابعا من أن تصبح أكثر قابلية للتسويق ، وهذه الدورة وبطبيعة الحال سوف تتعلم برمجة إكسيل ، ومع انتهائها سوف تدرك جيدا مدى سهولة هذه العملية .

في نهاية هذه الدورة ، فإننا سوف نتعلم تطوير التطبيقات البسيطة مع اكسل VBA.

قبل البدء في تعلم كيفية البرمجة باستخدام VBE ، يجب عليك أولاً كيفية استخدام البرنامج اللازم لإنشاء المشاريع الخاصة بك ، إن تطوير البرمجيات بواسطة ( VBA ) مدرج مع كل من برامج ميكروسوفت أوفيس ، مما يوفر لك عددا من الأدوات في تطوير المشروع .

1) ما هو محرر فيجوال بيزك (Visual Basic Editor ) ؟؟

عليك استخدام المصنفات ، والصيغ والرسوم البيانية ، وغيرها من الأشياء الجيدة لإكسيل معظم الوقت ، حان الوقت الآن لتوسيع النطاق الخاص بك ، واستكشاف آفاق جديدة تماما من جوانب إكسيل ، إنه محرر الفيجوال بيزك Visual Basic Editor ، عليك معرفة كيفية استخدامه ، وتعكف على مهمة كتابة بعض أوامره .

إن محرر فيجوال بيزك ( VBE ) هو عبارة عن برنامج منفصل عن طريقه يمكنك كتابة وتعديل VBA أو الماكرو ، وهو يعمل بسلاسة مع إكسيل ، ويمكنك تنشيط هذا المحرر (VBE ) عن طريق الضغط على{ Alt+F11 } عندما يكون إكسيل منشطا ، أو عن طريق استخدام القوائم من أدوات – ماكرو – محرر فيجوال بيزك .. كما بالشكل التالي :

898165162.jpg

الشكل يوضح كيفية استدعاء محرر أوامر الفيجوال بيزك( VBE )

أ) شريط القوائم :

تماما مثل أي برنامج آخر يمكنك استخدامه ، فشريط قوائم VBE يتضمن الأوامر المختلفة ومكوناتها ، يمكنك استخدام هذه الأوامر والمكونات في VBE على فعل الأشياء ، والعديد من أوامر القائمة لديها مفاتيح الاختصار المرتبطة بها .

الشكل التالي يوضح واجهة محرر البرامج VBE والتي تحتوي على الكثير من المكونات ..

213630575.jpg

ب) مستعرض المشروع (Project Explorer ) :

نافذة عرض المشروع تعرض شجرة توضح كل المصنفات المفتوحة في ملف إكسيل الحالي ( بما في ذلك المصنفات الإضافية والخفية ) عندما تعمل على VBE تعتبركل المصنفات والإضافات المفتوحة كمشاريع ، يمكنك اعتبار أن المشروع هو عبارة عن مجموعة من objects أو كائنات رتبت حسب مخطط معين .

اضغط على علامة ( + ) الموجودة على يسار اسم المشروع في نافذة عرض المشاريع لتوسيع المشروع .

211092849.jpg

ج) نافذة الأكواد ( objects ) :

يضم VBE أداة أخرى ، تحتوي على نافذة الأكواد Code window أو Module window ، كل object في المشروع يرتبط بنافذة أكواد خاصة به .

على سبيل المثال ، للإطلاع على نافذة أكواد للورقة Sheet1 ، انقر نقرا مزدوجا فوق Sheet1 في نافذة مستعرض المشروع . وحتى تضيف بعض أوامر VBA فإنها ستظل فارغة ...

116619819.jpg

د) مستعرض الكائنات (Object Browser ( :

ويضم VBE أداة أخرى ، تحتوي على نافذة الكائنات المتاحة لك خلال المشروع ، للوصول إلى مستعرض الكائنات ، اضغط F2 في شاشة VBE ، أو من قائمة عرض ( VIEW ) – مستعرض الكائنات (Object Browser ) القائمة المنسدلة في الأعلى قائمة تحتوي على مكتبة بها جميع وجوه الكائنات المتاحة حاليا .,. إذا كنت ترغب في تصفح كائنات إكسل ، حدد إكسل من القائمة المنسدلة.

542872990.jpg

هـ ) نافذة الخصائص (Properties Window ) :

الشكل يوضح نافذة الخصائص لأحد الكائنات بالمشروع ، وهو على سبيل المثال (CommandButton1 ) أو زر أمر 1 ، فعندما تريد تغيير عنوان هذا الزر فإنك تغير في إعدادات Caption لهذا الزر وتضع أي عنوان تريده مثل ( اضغط هنا – خروج – حفظ ... ) يمكنك ايضا أن تلعب مع بعض الخصائص الأخرى مثل الخط ، الطول لون الخلفية العرض ، والارتفاع لتغيير مظهر CommandButton1 .

473501956.jpg

موجز سريع :

آمل أن أكون قد وفقت في الجزء الأول في عرض المقدمة وأساسيات البرمجة عن طريق VBA ببرنامج إكسيل ، وعليك أن تفتح محرر أوامر بيزك في إكسيل وحاول استعراض الكائنات الخاصة بالمشروعات وتغيير بعض الخصائص ...

ومنتظر ردودكم أكمل والا لأ لانها بصراحة أول مرة أعمل موضوع بالشكل ده ...

تم تعديل بواسطه خبور خير
  • Like 6
رابط هذا التعليق
شارك

السلام عليكم و رحمة الله و بركاته

أخي الفاضل ابو هاجر

بداية جميلة

وموضوع شيق

جزاك الله كل خير

آمل التكرم بالإكمال

وشكرا

رابط هذا التعليق
شارك

السلام عليكم

الاخ الفاضل أبو هاجر المصري

بالفعل هذا سيكون من الاعمال الجيده التي التي يطلبها جميع الاعضاء

و المشرفين لم ولن يتاخروا لو في استطاعتهم ذلك

و لكن تشجيعا لك و لاستمرارك فيه انا ادعو كافة الاعضاء من المشرفين

و حتي الاعضاء الجدد ممن لهم الخبرة و المعرفة بال VB بمتابعة هذا الموضوع اثناء سرده

و ان يتدخل من له العلم با VB اثناء سردك بناء علي الاسئلة المطرحة من الاعضاء لتقديم مثال

يوضح نقطة معينه يطلب الاستفسار عنها من الاعضاء او تيطلب توضيحها بمثال عملي

حتي يوضع هذا الموضوع امام كافة الاعضاء الطالبين للتعلم ويكون عونا و مرجعا لمن يريد التعلم

و عندما يدخل الموضوع في الجد و ياخذ شكلا جيدا و شبه مكتملا فنطلب له التثبيت لافادة الجميع

فاتمني من الله عونك علي انجازه وعوننا علي ارفاق امثلة ان احتاج الامر

وفقك الله اخي و بارك فيك و اعانك

و تخيل عدد من يدعو لك

خالص تحياتي و تقديري

تم تعديل بواسطه aah_aah2008
رابط هذا التعليق
شارك

السلام عليكم

موضوع شيق ومفيد لأبعد الحدود

جزاك الله خيرا وأعانك لنهايته وألا تبرد همتك

وكلنا منتظرينك

ولست أنت المنتظر

ومنتظر ردودكم أكمل والا لأ لانها بصراحة أول مرة أعمل موضوع بالشكل ده ...

وجعل الله كل ذلك في ميزان حسناتك

طارق محمود

رابط هذا التعليق
شارك

السلام عليكم

موضوع شيق ومفيد لأبعد الحدود

جزاك الله خيرا وأعانك لنهايته وألا تبرد همتك

وكلنا منتظرينك

ولست أنت المنتظر

ومنتظر ردودكم أكمل والا لأ لانها بصراحة أول مرة أعمل موضوع بالشكل ده ...

وجعل الله كل ذلك في ميزان حسناتك

تم تعديل بواسطه خبور خير
رابط هذا التعليق
شارك

السلام عليكم

أخي موضوع مميز

و أتمنى لك التوفيق من كل قلبي

و لكن أخي يجب ان تبقي همتك عالية حتى النهاية فلا تضعف و لا تتقاعس

عدد كبير من الأعضاء متعطش لموضوعك

و دمتم في حفظ الله و رعايته

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

والله يا جماعة أحرجتوني كتير جدا بالكلمات الجميلة والأهم منها الدعوات اللي فعلا أنا محتاجها جدا

بصراحة مكنتش متخيل الاستجابة دي كلها وده اللي هيخليني بإذن الله إن شاء الله أكمل معاكو الدورة لآخرها إن شاء الله

شكرا لكم جميعا وأفكركم بس إني أتعلم معكم تماما ، ولا تنسونا من دعواتكم

الدرس الثاني

الجزء الثاني ( الماكــرو Macro )

في هذا الجزء سوف تتعلم :

** عملية تسجيل الماكرو ..

** كيفية جعل مهمة معينة عملية أوتوماتيكية ..

1) تسجيل أول ماكرو لك ...

يمكنك استخدام مسجل الماكرو الموجود أصلا في إكسيل ليترجم إجراءاتك في محرر أوامر VBA ، وبعد انتهاءك من تسجيل الماكرو يمكنك أن ترى أكواد هذه العلمية في مستعرض الأكواد Module window ، وقبل عملك للماكرو قم بتحديد الخطوات والإجراءات والأوامر التي تريد من الماكرو أدائها ، واعلم جيداً أن أية حركة أو إجراء ولو بسيط تقوم بعمله أثناء تسجيل الماكرو سيتم تسجيله في محرر VBA تلقائيا واعتبارها عملية أو أمر من الأوامر ..

** في هذا المثال ، سنقوم بتسجيل ماكرو يقوم بتحديد لون خلفية الخلية إلى اللون الأصفر. لتسجيل الماكرو ، اتبع الخطوات التالية :

أ) حدد المدى على ورقة العمل ثم اختر تسجيل ماكرو جديد... ( من قائمة أدوات ثم ماكرو ثم تسجيل ماكرو جديد )

737849461.jpg

ب) في مربع حوار تسجيل ماكرو ، أكتب "SetBackgroundColor" في مربع نص اسم الماكرو . اترك باقي الخيارات الافتراضية كما هي ثم انقر على زر موافق وهذا يبدأ تسجيل الماكرو ..

252598110.jpg

ج) في لوحة لون التعبئة ، اختر مربع اللون الأصفر الفاتح وهذا العمل سوف يحدد اللون الأصفر كلون خلفية لمجموعة خلايا قمت بتحديدها .

525082635.jpg

د) لإيقاف عملية تسجيل الماكرو ، انقر على زر إيقاف التسجيل (مستطيل أزرق داكن) على شريط أدوات تسجيل ماكرو.

781619651.jpg

نعم أنت الآن قمت بعمل ماكرو جديد ، وأعطيته اسم معين ، ومهمة أو إجراء معين يقوم بعمله ..

والآن فإن الماكرو المسجل قابل للاستخدام ويمكنك تشغيله ، وقبل استخدامه دعنا نلقي نظرة على بناء الجملة داخل VBE ..

قم بالضغط على [Alt] + [F11] في نفس الوقت لفتح محرر VBA ، قم بتوسيع مستعرض وحدات المشروع Module1 في مجلد Project Explorer بالنقر على علامة (+) .

358123772.jpg

انقر نقرا مزدوجا فوق مجلد Module1 حتى يمكنك أن ترى الماكرو ..

وكما يبين الشكل فإن :

1- اسم الماكرو هو (SetBackgroundColor )

2- رقم اللون المختار كخلفية ( 36 )

3- نمط الخلفية (solid ) أي سادة .

ملاحظة مهمة :

حرف الفاصلة باللون الأخضر بمقدمة السطر تعني أنه مجرد تعليق وسيقوم VBA بتجاهله ، يمكنك دائما إدراج التعليقات عن طريق القيام بذلك .

2) تشغيل الماكرو الذي قمت بتسجيله ..

يمكننا تشغيل الماكرو داخل VBE ، ولكننا الآن سنقوم بتشغيل الماكرو داخل ورقة العمل .

أ) في أي ورقة عمل قم بتحديد نطاق معين ..

637700264.jpg

ب) تشغيل الماكرو المسجل عن طريق اختيار قائمة أدوات --- ماكرو --- وحدات ماكرو أو اضغط على [Alt] + [F8] في نفس الوقت

388157360.jpg

ج) يتم عرض مربع حوار ماكرو . ولما كان هناك واحد فقط في وحدات الماكرو ، افتراضيا الماكرو الوحيد ، يتم اختيار SetBackgroundColor. وهو اسم الماكرو الذي قمنا بتسجيله ، انقر على زر تشغيل لتشغيل الماكرو .

116860387.jpg

د) سيتم تلوين الخلايا الآن باللون الأصفر الفاتح كما نريد .

552428097.jpg

هـ) يمكنك تعديل الماكرو ، وذلك من خلال محرر VBA ، ثم نستعرض أكواد الماكرو ( نافذة الأكواد ) ومن ثم نعدل في البرمجة الخاصة بهذا الماكرو ففي مثالنا هذا يمكننا تغيير ColorIndex = 3 أي أن اللون بدلا من أن يصبح أصفر فاتح يصبح أحمر مثلا .

و) يمكننا كذلك أن نضيف ماكرو في شريط الأدوات ، وذلك من خلال عمل زر أمر ( قائمة عرض View– أشرطة الأدوات Toolbars – -- مربع أدوات التحكمControl Toolbox. ) ، ثم بعد ذلك اختيار زر أمر ، وبعد ذلك عمل هذا الزر على ورقة العمل ، بمجرد عمل هذا الزر سيطلب البرنامج تعيين ماكرو من قائمة وحدات الماكرو ليكون الخاص بهذا الزر ( أي أننا نخصص ماكرو معين يتم تشغيله بمجرد الضغط على هذا الزر )

389679870.jpg

ز) يمكنك بعد ذلك تغيير اسم الزر ، أو حتى الدخول إلى VBE عن طريق هذا الزر وتعديل الماكرو كل ذلك عن طريق الضغط بالزر الأيمن للفارة على زر الأمر واختيار تحرير النص لتغيير اسم الزر ، أو تعيين ماكرو وبعدها تحرير لتدخل في VBE .

956891419.jpg

ح) الآن بمجرد ضغطك على زر الأمر فإنك تعطي أمر بتشغيل الماكرو الذي سجلته .

ملحوظات هامة :

1-يمكنك استخدام ماكرو التنفيذ المتكرر ، وذلك بإضافة سطر أمر لكود الماكرو كالتالي : ActiveCell.Offset(1,0).Select

468108125.jpg

عند النقر على الزر الآن فإنه بعد تنفيذ أمر تغيير الألوان للخلايا النشطة فإنه سينزل صف واحد لأسفل …

2- لماذا في بداية تسجيل الماكرو قمنا بتحديد أي نطاق أولا وبعد ذلك قمنا بما فعلناه من خطوات ؟ ذلك أننا بذلك أعطينا أمر للماكرو بأن يتم التطبيق فقط على الخلايا النشطة من ورقة العمل .

3) الملخص ..

هكذا قمنا بعمل ماكرو ، وتشغيله ، وربطه بزر على ورقة العمل ، وقمنا بالتنفيذ المتكرر .

هكذا أيها الأخوة انتهينا من الدرس الثاني بعون الله تعالى وحفظه ، وأرجو المعذرة على التقصير وأتمنى من الأخوة المشرفين ( كما قال الأخ aah ) بأن يتفاعلوا مع الأخوة الأعضاء والرد على استفساراتهم وأسئلتهم بالأمثلة والحلول جزاكم الله جميعا ألف خير ، وإن كان فيه أخطاء إملائية فهذا من سرعة الكتابة فقط وأرجو التنبيه لأصححها لأنني بصدد رفع تلك الملفات ( ملفات الشرح ) على الموضوع أيضا لمن أراد ذلك ...

  • Like 1
رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

هـ) يمكنك تعديل الماكرو ، وذلك من خلال محرر VBA ، ثم نستعرض أكواد الماكرو ( نافذة الأكواد ) ومن ثم نعدل في البرمجة الخاصة بهذا الماكرو ففي مثالنا هذا يمكننا تغيير ColorIndex = 3 أي أن اللون بدلا من أن يصبح أصفر فاتح يصبح أحمر مثلا .

و) يمكننا كذلك أن نضيف ماكرو في شريط الأدوات ، وذلك من خلال عمل زر أمر ( قائمة عرض View– أشرطة الأدوات Toolbars – -- مربع أدوات التحكمControl Toolbox. ) ، ثم بعد ذلك اختيار زر أمر ، وبعد ذلك عمل هذا الزر على ورقة العمل ، بمجرد عمل هذا الزر سيطلب البرنامج تعيين ماكرو من قائمة وحدات الماكرو ليكون الخاص بهذا الزر ( أي أننا نخصص ماكرو معين يتم تشغيله بمجرد الضغط على هذا الزر )

مشكور اخي الغالي على الشرح الأكثر من رائع وفعلا في انتظار الكثير والمزيد من الشرح

لي سؤال انا الأن جربت عمل زر لأضع عليه الماكرو اللي عملته كيف اقوم بذلك حيث انني عندما اختار Edit يتيح لي فقط تغيير الإسم على الزر انا اريد خيار تعيين الماكرو اللي اجده عندما اضع صورة او مربع نص لكن لا اجده عند وضع زر امر مالسبب

رابط هذا التعليق
شارك

أخي أوفيس 2003

هناك طريقتان :

1- عند عمل الزرد نفسه يخرج مربع حوار يتم من خلاله تعيين الماكرو .

2- تنقر بالزر الأيمن للفارة على زر الأمر في ورقة العمل تخرج قائمة فيها اختيار تعيين ماكرو ، ومن ثم تختار الماكرو المراد تعيينه . واذا لم يظهر اختيار تعيين ماكرو انقر في ورقة العمل في مكان فارغ وارجع مرة اخرى للزر بضغطة واحدة يمين عليه .

أحب أوضح للأخوة إني بستكمل الموضوع ان شاء الله ، والدرس القادم باذن الله هو الكائنات Objects ولانه درس جدا مهم وطويل وضروري فأريد أن أعده بشكل سليم قليل الأخطار إلى أبعد حد ممكن ، ولذا قد أتأخر بعض الشئ فلا تملوا .

تم تعديل بواسطه أبو هاجر المصري
رابط هذا التعليق
شارك

السلام عليكم ورحمة الله

أخواني الأعزاء نستكمل مع بعض سلسلة الدروس

الجزء الثالث ( الكائنات ومجموعات الكائنات في إكسيل Collection Objects and Objects )

في هذا الجزء سوف تتعلم التالي :

* الأجسام – الكائنات ( Objects ) .

* مجموعة كائنات VBA ( VBA Collection Objects ) .

* كائنات التطبيق ( The Application Object ) .

* كائنات المصنف والويندوز ( Workbook and Window Objects ) .

* كائنات ورقة العمل ( The Worksheet Object ) .

* كائنات النطاق – المدى ( The Range Object ) .

1) ما هي الكائنات ( Objects ) ..؟

من السهل جدا فهم ذلك ، يمكنك الاعتقاد بأن الكائنات هي برامج حاسوبية منفصلة ( وقد تكون مشتركة ) تقوم بأداء وظائف محددة متاحة للاستخدام المتكرر في برامجك الخاصة . والكائنات أو الأجسام تعتبر ديناميكية في ذلك أي أنها تتمتع بسهولة الاستخدام والمرونة في معالجتها عن طريق الأكواد باستخدام معايير مختلفة لذلك .

نأخذ على سبيل المثال ( السيارة ) ، يمكن وصفها بحجمها ولونها والشركة المصنعة لها ( من بين معايير أخرى بالطبع ) وقد نصف السيارة بأنها ذات دفع رباعي أو رياضة إلخ ...، وكل ذلك بالإضافة إلى اللون والحجم والشركة تعتبر وصف للسيارة ، وبالتالي فكل هذه الصفات هي خصائص Properties للسيارة .

والسيارة يمكنها أن تؤدي العديد من الإجراءات مثل أن تسير في اتجاه مباشر أو تدور ، والتحرك والدوران تعتبران أفعال من خلالها تعرف المهام التي يمكن للسيارة القيام بها ، أي أن التحرك والدوران يعتبران طرق Methods للسيارة ، وأخيرا فإن السيارة مصنوعة من كائنات أخرى مثل الإطارات والهيكل وغيرهما . هذه الكائنات بدورها لها خصائص وطرق لتؤدي عملها ، فإطارات السيارة مثلا لها قطر معين وقابلية للدوران وكذلك الهيكل مصنوع من الألومنيوم أو التيتانيوم ، وبذلك فإن خامة الإطارات تعتبر من الخصائص وقابليتها للدوران تعتبر من طرق عمل الإطارات ، لذا فإنك تستطيع أن ترى أن هناك نوع من التسلسل الهرمي للكائنات في السيارة وكائنات أو مكونات السيارة نفسها تقع في قمة الهرم الوظيفي .

في إكسيل أنا متأكد من أنك على دراية بالكثير من الكائنات ، فهناك كائنات للمصنف ككل وكائنات لورقة العمل وكائنات للمدى والنطاق وكائنات للرسم البياني وغيرها الكثير والكثير ، هذه الكائنات Objects هي لبنات لبناء برنامج بـ BVA .

أ) مجموعة كائنات VBA ..( VBA Collection Objects )

لفهم ما هي مجموعة كائنات VBA يمكنك التفكير بالسيارة ، اللون والحجم والشركة والإطارات والهيكل كلها كائنات منفصلة في ذاتها ولكنها كلها مجتمعة عبارة عن السيارة . ولذلك فإن مجموعة كائنات VBA هي عبارة عن مجموعة الكائنات المختلفة في البرنامج .

على سبيل المثال فإن أي كائن لورقة العمل يتبع لكائنات المصنف ككل ، وكذلك فإن مجموعة كائنات المصنفات تشمل مجموع كائنات كل المصنفات المفتوحة ، والشكل أسفل يبين نافذة إكسيل بها ثلاث مصنفات مفتوحة أي أن مجموعة كائنات المصنفات في الشكل عبارة عن جميع الكائنات الموجودة في book1+book2+book3 مجتمعة ..

360637971.jpg

التسلسل الهرمي للأجسام والكائنات في إكسيل

Application تطبيق

Workbooks المصنفات

Workbook المصنف

Sheets صفحات

Worksheet ورقة عمل

Range نطاق

هناك الكثير من الكائنات لتغطيتها كلها ، وفي هذا الجزء سوف أقوم بشرح فقط الكائنات الموجود بالشكل أعلاه ، هدفي هو راحتك في التنقل بين هذه الكائنات وأن تتعلم كيفية استخدامها بنفسك ..

ب) كائنات التطبيق The Application Object .

كائنات التطبيق تقع في قمة التسلسل الهرمي لأنها تمثل كائنات كامل تطبيق إكسيل ، كما أنها على مستوى عال وفريد من البرمجة ولذلك فإنه نادرا ما تحتاج إلى معالجة من خلال VBA . ومع ذلك هناك عدد قليل من الظروف المعينة التي تحتم استخدام أكواد برمجية في معالجة كائنات التطبيق .

** على سبيل المثال فإن خصائص الطول والعرض لبرنامجك تحتم إعداد حجم نافذة الإكسيل من خلال أكواد VBA .

ويمكنك معالجتها كالتالي :

Application.Width = 800 
Application.Height = 550 
** ومثال آخر ، فإنك قد ترغب في إخفاء شريط الصيغ ، ويكون كذلك :
Application.DisplayFormulaBar = False
عموما أنت بحاجة لاستخدام كائنات التطبيق في أغلب الأحيان لتحديد الخصائص المتعلقة بمظهر برنامج إكسيل ، منها ما هو مبين أعلاه أو كالتالي :
Application.Calculation = xlManualلإيقاف عملية الحسابات التلقائية وجعلها يدويا                                     
Application.EditDirectlyInCell = Falseلإيقاف عملية تحرير الخلايا                                                     
Application.DefaultFilePath = “D:\My Documents”لتحديد مسار الملفات الافتراضي                             
- كما قد تكوت في حاجة إلى تصفية كائنات التطبيق ( مفيدة جدا ) لضمان سرعة العمل ..
Application.ScreenUpdating = False
ب) كائنات المصنفات وكائنات النوافذ The Workbook and Window Objects. قد لا تكون على دراية بكائنات النوافذ ، فكائنات النوافذ تشير إلى جميع النوافذ داخل نفس المصنف أو البرنامج الحالي ، فداخل تطبيق إكسيل فإن نافذة مجموعة كائنات تحتوي على كل نوافذ المصنفات المفتوحة ، ونافذة الكائنات تفهرس وفقا لطبقاتها ، ففي الشكل السابق يمكنك استرجاع BOOK2 عن طريق الكود التالي :
Application.Windows(2).Activate
وذلك لأن BOOK2 يعتبر في منتصف كائنات نوافذ المصنفات الثلاثة المفتوحة ، فبعد أن يتم استرجاع BOOK2 إلى مقدمة الطبقات فإن من شأنها أن يتغير مؤشرها أو فهرستها إلى الرقم ( 1 ) عند استخدام نافذة مجمع الكائنات Windows Collection Objects، هذا يختلف عن الوصول إلى BOOK2 باستخدام مجمع كائنات المصنفات Workbooks collection object . - دعونا نلقي نظرة أكثر تفحصا لمجمع كائنات المصنفات Workbooks collection Object عن طريق مثال ، لا يوجد غير عدد قليل ومحدود من خصائص وطرق Workbooks collection Object كما أن مهامها ووظائفها Functions مباشرة ، قم بإضافة الكود التالي للمصنف :
Public Sub exampleWorkbooks()
Dim j As Integer
For j = 1 To 3
Workbooks.Add        ‘add a new workbook
Next j
Workbooks(Workbooks.Count).Activate      ‘activate book3
End Sub
- Dim .......... مجهول - Integer ..... عدد صحيح تام - لتنفيذ هذا الإجراء عليك أن تختار exampleWorkbooks عن طريق قائمة الماكرو في الإكسيل ، سوف ترى على الفور ثلاث مصنفات جديدة فتحت في إكسيل ، وبعد ذلك سيتم تنشيط BOOK3 . - هذه طريقة مباشرة نسبيا ، وقد شاهدت أنت اثنين مثلها (the Add() method, Count property and the Activate() method). ، عامة فإن جميع هذه الأساليب والمعالجات للأجزاء المكونة للعمليات المبرمجة فإنها سوف توضح بشكل أكثر تفصيلا لاحقا مع مختلف الكائنات الأخرى ، سوف تجد أن كثيرا من الكائنات المجمعة collection objects تشترك في كثير من الخصائص والطرق properties and methods ، هذا ليس غير اعتيادي ويجب أن تدرك أنه يتوقف على الكائن الذي تقوم باستخدامه ، والمعايير التي إما أن تكون متاحة أو مطلوبة لتلك المكونات قد تختلف . أنظر في إجراءات VBA التالية ، التي توضح كيفية استخدام طريقة close() في كائنات المصنفات ، والكود يمكن وضعه في موديول الكائن أو القياسي :
Public Sub CloseWorkbooks()
Workbooks(Workbooks.Count).Close SaveChanges:=False
Workbooks(1).Close SaveChanges:=False
End Sub
وسيقوم الإجراء بإغلاق أول وآخر مصنف مفتوح في إكسيل دون دفع المستخدم لحفظ التغييرات . - في المثال أعلاه طريقة close() استخدمت في كائنات المصنفات Workbook Object ، وليس في مجموعة كائنات المصنفات Workbooks collection object ، إذا كنت ترغب في إغلاق جميع المصنفات في وقت واحد يجب عليك استخدام close() method مع مجموعة كائنات المصنفات .... - الكود أدناه سيغلق مجموعة المصنفات ..
Workbooks.Close

في هذه الحالة لن تكون هناك خيارات متاحة ، ولذلك سيكون المستخدم حازما وجادا في إنقاذ المصنف المحدد حاليا ..

**** آسف جدا لعدم اكتمال هذه الجزئية ، ذلك أنني فعلا مشغول جدا هذه الأيام عامة ، سوف ألحق الجزء الباقي من هذا الدرس في أقرب وقت ممكن وهو << ( كائنات ورقة العمل ، طرق وخصائص ورقة العمل ، كائنات المدى ، استخدام خواص الخلايا ، طرق وخصائص المدى ( الخلايا والصفوف والأعمدة ) >>

**** كما أرجو من الأعضاء جميعه أن يسامحوني على سوء الإملاء والترجمة حاولت جاهدا ذلك ، وأي عضو شايف غلطة أو توضيح يا ريت ميبخلش بيه لانني سوف أضع في نهاية الدورة هذه الملفات تحت استخدامكو ان شاء الله ... والله المستعان

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

بداية اشكر اخي الحبيب هادي محمد المأمون علي تثبيت الموضوع بارك الله فيه

اخي أبو هاجر المصري

جزاك الله كل خير وارجو ان لا تضعف همتك

فالكثير الكثير يحتاج الي التعلم و ما تكمله انت سيكون مرجعا لهم

اعانك الله

خالص تحياتي و تقديري

رابط هذا التعليق
شارك

أشكر جميع الأخوة الأعزاء على مشاركاتهم ووافر دعائهم

جزانا وإياكم الخير بإذن الله تعالى

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

أنا تأخر هذه المرة لاني فوق اني كنت مشغول شوية فإن المصطلحات كنت عايزها تترجم بشكل عملي فعلي أكثر ، ولذا سوف تلاحظون استعانتي بالكلمة او المصطلح الانجليزي لانه مفيد في الفهم ، وخصوصا ان البرنامج الذي نحن بصدده أصلا انجليزي ، فلازم كده كده هنستخدم اللغة في كل العمليات بتاعتنا

على العموم أحب أن أؤكد على ضرورة مشاركتنا بالملاحظات الخاصة بالمادة العلمية والترجمة والسياق وأي ملاحظات خاصة ممكنة ، وأي عضو مش فاهم جزئية يا ريت يطرحها للنقاش علشان الكل يستفيد ، وأي عضو شايف تعديل في المضمون ياريت برضة يقول عليه .... شكرا لكم

الأخوة الأعزاء الأفاضل

نستكمل سويا الجزء الثاني من الجزء الثالث من الدورة 3/2

د) كائنات ورقة العمل The Worksheet Object .

تندرج كائنات ورقة العمل تحت كائنات المصنفات في التسلسل الهرمي لمجموعة كائنات برنامج إكسيل ، للتحقق من بعض أحداث ورقة العمل فقد أضيفت الأكواد التالية إلى أحداث SelectionChange() للورقة الأولي sheet1 في المصنف workbook :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim msgOut As String
msgOut = “The name of this worksheet is “ & Worksheets(1).Name
MsgBox (msgOut)
Worksheets(2).Select
End Sub
953530655.jpg إن إجراءات SelectionChange() توجد في الـ module الخاص بورقة العمل ، وهذا الحدث أو الإجراء يفعل حينما يقوم المستخدم بتغيير الاختيارات الحالية لورقة العمل ، اعلم أن الهدف من إجراء حدث SelectionChange() هو نطاق يمثل خلايا يقوم المستخدم بتحديدها ، وسوف نقوم قريبا بشرح كائنات المدى بالتفصيل ولكن لنتجاهلها الآن لأن مثالنا لا يعتمد عليها . الكود في إجراء SelectionChange() مباشر وصريح ، أولا . قمنا بتعيين سلسلة متغيرة String وتم تعيين قيمتها بـ ( اسم ورقة العمل هذه هو ) وهي بدورها متسلسلة مع اسم ورقة العمل التي تم الحصول عليها من خصائص كائنات ورقة العمل ، وكامل مسار الكائن لا يستخدم لإعادة تسمية ورقة العمل ، وفي هذا الكود فإنه لن يتم تنفيذه إلا عندما يقوم المستخدم بإحداث تغيير في ورقة العمل الأولى sheet1 من مجمع كائنات أوراق العمل . لذا فإن مسار الكائن يتنقل خلال كائنات المصنف . وهذا هو السبب في إمكانية استخدام أرقام فهرسة مع خصائص أوراق العمل داخل كائنات المصنف من دون اهتمام لإرجاع الورقة الخاطئة ، وبعد عرض السلسلة في مربع الرسالة فإن طريقة Select() لكائنات ورقة العمل تستخدم لتحديد ورقة العمل الثانية في مجموعة كائنات ورقة العمل . وبعد ذلك فإن الكود قد أضيف إلى Worksheet_Activate() لمجموعة إجراءات الورقة الثانية . ويتم تنفيذ إجراء تفعيل الورقة الثانية بعد أن يقوم المستخدم أولا باختيار ورقة العمل ، أو في هذه الحالة يتم اختيارها بالكود البرمجي (Worksheets(2).Select) ، والكود في الأساس هو نفس الكود السابق ...
Private Sub Worksheet_Activate()	
Dim msgOutput As String
msgOutput = “This worksheet is “ & Worksheets(2).Name
MsgBox (msgOutput)
End Sub
إن إجراء Worksheet_Activate() لا يتم تنفيذه إذا تم فتح المصنف أولا ، حتى لا يكون المقصود بروتينية تنفيذ الإجراء عند بدء تشغيل المصنف ، هذا الإجراء ينبغي أن يوضع في قائمة أحداث Workbook_Open() ... إن مجمع كائنات ورقة العمل هي تقريبا متماثلة مع مجمع كائنات المصنف ، وكائنات الاثنين كثيرا ما يستخدمان بشكل تبادلي كما في المثالين السابقين ، ويعتبر الفرق بينهما أن كائنات ورقة العمل يمكنها أن تتضمن أي ورقة رسم بياني مفتوحة بالمصنف ، لذا إن كنت ترغب أن يتم فتح أوراق الرسم البياني في المصنف ، يجب عليك الوصول إلى ورقة العمل باستخدام مجمع كائنات ورقة العمل ، وإلا فإن مجمع الكائنات يكفي . هـ) الطرق وخصائص ورقة العمل Methods and Properties of the Worksheet اختر ورقة في نافذة مشروع VBA ، يمكنك أن ترى 11 خاصية من خواص ورقة العمل في نافذة عرض الخصائص ، هذه الخصائص تعطيك إمكانية تحديد القيم الخاصة بالكائن مع بداية عمل البرنامج ويمكنك تعديلها بعد ذلك من خلال إجراءات VBA متى أردت ذلك . - هناك 3 خصائص من خصائص ورقة العمل ستحتاجها في أغلب الأحيان : 1- الاسم ( الاسم بين قوسين ) .... الاسم Name 2- الاسم ( بدون أقواس ) مثل عنوان الصفحة الذي يظهر على تبويب إكسيل ... العنوان مثل caption 3- والصفات المرئية .... visible property - لتغيير عنوان يمكنك ذلك عن طريق نافذة الخواص ، أو في الإكسيل عن طريق النقر بالزر الأيمن ثم إعادة تسمية . - يمكنك تغيير عنوان ورقة العمل بالكود التالي :
Worksheets("Sheet1").Name= "Good"
- خاصية visible يمكنها أن تكون قيمة من 3 قيم ممكنة ( أي 3 اختيارات لها ) ، أول قيمتين هما ( true & false ) أي أن تكون الورقة ظاهرة أو مخفية كالتالي :
Worksheets("Good ").Visible= True
Worksheets("Good 1").Visible= False
- تذكر أن الدوال التي في الخلايا يتم حسابها حتى ولو كانت صفحاتها مخفية ، ولكن قبل أن تتمكن من فعل أي شيء برمجيا عليك أولا أن تقوم بتغيير وضع الورقة من مخفية إلى ظاهرة :
Worksheets("Good ").Visible = True
Worksheets("Good "). Select
Range(“A1”).Value = 10
القيمة الثالثة التي يمكن أن تأخذها خاصية visible هي أن تكون الورقة مخفية للغاية بمعنى :
Worksheets("Good ").Visible = xlVeryHidden
في هذه الحالة ليس فقط ستكون ورقة العمل مخفية ولكنك حتى لن ترى اسمها ضمن أسماء ورقات العمل حتى لو ذهبت إلى (Format/Sheets/Unhide ) فإنك لن تجدها ضمن أسماء أوراق العمل ، حيث أن value xlVeryHidden لا يمكن أن تتغير إلا برمجيا ، وهذا يعني أن المستخدم فقط الذي يمكنه الوصول إلى VBA يمكنه تغيير الكود ومن ثم معاينة الورقة ، فلو كانت أكوادك محمية بكلمة مرور فإن المستخدم الذي يعرف كلمة المرور فقط هو الذي يمكنه الوصول إلى الأكواد والتعديل فيها ، ويمكنك استخدام الخاصية Visible لإخفاء المعلومات السرية ( كتفاصيل البطاقات الائتمانية ، والبيانات الشخصية ) أو حتى إخفاء أوامر أو إجراءات لا تريد المستخدم أن يعدل فيها .
Worksheets("Good ").Visible = True
Worksheets("Good "). Select
Range(“A1”).Value = 10
وأخفها مرة أخرى :
Worksheets("Good ").Visible = xlVeryHidden
تذكر أن المعادلات والصيغ التي تشير إلى خلايا تقع داخل الأوراق المخفية تعمل حتى ولو كانت أورارق العمل مخفية للغاية . قد ترغب في حذف أوراق أو صفحات فهذا هو الكود :
Worksheets("Good ").Delete
وقد ترغب بإضافة صفحات جديدة
WorkSheets.Add
وهنا سيقوم VBA بإضافة ورقة جديدة قبل الورقة النشطة أما إذا كنت أكثر تحديدا أين تضيف وكم تضيف من أوراق ، فستستخدم أحد الإجراءات التالية : لو كنت تود إضافة ورقة قبل ورقة اسمها Good سيكون الكود هكذا :
Sub exercise2()
    Sheets.Add after:=Sheets("Good")
End Sub
لو كنت تود إضافة 3 ورقات قبل ورقة اسمها Good سيكون الكود هكذا :
Sub exercise2()
    Sheets.Add after:=Sheets("Good "), Count:=3
End Sub
إضافة ورقة في بداية المصنف ، لاحظ اختفاء علامة الاقتباس عند الإشارة إلى ترتيب الورقة :
Sub exercise2 ()
    Sheets.Add after:=Sheets(1)
End Sub 
وإذا كنت تريد إضافة ورقة بآخر المصنف ، عليك بعد ورقات العمل عن طريق Sheets.Count ، واستخدام القيمة ( قيمة العدد ) كرتبة للورقة الجديدة التي تريد إضافتها :
Sub exercise2 ()
    Sheets.Add After:=Sheets(Sheets.Count)
End Sub
لاحظ أننا استعضنا عن رقم او رتبة او ترتيب الورقة بتعداد أوراق العمل ..... و) كائنات النطاق أو المدى The Range Object ... يمكنك استخدام كائنات المدى التي تمثل مجموعة من خلية أو أكثر من خلية متجاورة في ورقة عمل إكسيل ، وهذا مفيد للغاية ، لأن هذا يسمح لنا باستغلال خصائص خلية أو مجموعة من الخلايا في ورقة العمل ، قد تجد نفسك تقوم باستخدام كائنات المدى في كل برنامج تكتبه عن طريق VBA لتطبيق إكسيل . أنظر إلى تلك الأمثلة من الأكواد التي تستخدم كائنات المدى :
Range(“B1”).Value=”Column B”
Range(“B1:G1”).Columns.AutoFit
Range(“B1:C1”, “E1:F1”).Font.Bold = True

- مدى أو النطاق Range يعتبر مثال على مجمع كائنات VBA التي لا تستخدم صيغة الجمع في الإشارة إلى المدى ، بمعنى أن Range عبارة عن مجموعة خلايا حتى ولو كانت خلية واحدة .

- لاحظ أن المسار الطويل للكائنات قد حذف في الأمثلة أعلاه ، ومن ثم فإن أسطر الأكواد المذكورة بأعلى ستعمل على ورقة العمل الحالية -

- السطر الأول == يدرج النص (Column B ) في الخلية B1 ، وذلك عن طريق خاصية تحديد القيمة للكائن . فخصائص كائنات النطاق استخدمت لإرجاع القيمة لخلية واحدة كما في هذا المثال ، لقد شاهدت بالفعل العديد من الأمثلة عن خصائص القيمة سابقا Value property على الرغم من وجود خصائص قيمة للعديد من الكائنات ، فإن كائنات المدى هي الأكثر شيوعا .

- السطر الثاني == عند استخدام الطريقة التلقائية AutoFit() method لتعديل ضبط الأعمدة في مدى معين ، فإنك بذلك تسمح بعرض محتويات الخلايا كاملة دون تداخل في الأعمدة المجاورة ، وهذا يعادل استخدام القوائم في الإكسيل Format, Column, AutoFit ...

- السطر الثالث والأخير == يقوم بتحديد شكل الخط إلى أسود من خلال خاصية الخط Font Object وتطبيقها على نطاقين من الخلايا في ورقة العمل النشطة ، والنطاقان هما (B1:C1 ، E1:F1 ) ، ومسموح لك فقط بإرجاع نطاقان اثنين فقط كحد أقصى ، وإضافة نطاق ثالث إلى القوسين يرجع القيمة الخطأ run-time error .

- الأمثلة أعلاه وضحت طريقتين فقط من طرق استخدام خصائص كائنات المدى (AutoFit(), Columns, and Font ) ، وإذا كنت من المستخدمين العاديين لإكسيل فإنك تعتقد أن هناك العديد من الطرق وغيرها من الخصائص المتعلقة بتنسيق خلايا جداول البيانات .

- تسجيل الماكرو هي الطريقة الأسرع والأسهل لتوليد الأكواد التي تحتاج إليها دون البحث عن الوثائق التي تصف الكائنات وخصائصها ، وطرقها ، فبعد تسجيلك للماكرو في موديول منفصل (separate module ) ، يمكنك مسح الأكواد المسجلة ومن ثم نسخ ولصق الأكواد التي تحتاج إليها في برنامجك .

هذا وميعادنا إن شاء الله في الجزء الثالث من الجزء الثالث وهو عن ( استخدام خصائص الخلايا وطرق ووسائل المدى وترحيل البيانات ) فانتظرونا فلدينا المزيد بإذن الله

والسلام عليكم ورحمة الله وبركاته

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information