دليل للعمل مع المصنفات في vba
في Excel، يعد المصنف أحد أهم كائنات Excel، ومن الضروري أيضًا فهم كيفية استخدام المصنفات والإشارة إليها عند كتابة أكواد VBA.
في هذا البرنامج التعليمي، سنستكشف كل الأشياء التي تحتاج إلى معرفتها. ولكن أول شيء تحتاج إلى فهمه هو الكائنات المشاركة في العمل مع المصنفات في VBA.
أشياء يجب معرفتها:
- كائن المجلدات
- كائن الموثق
هذين الجسمين يبدوان متماثلين، لكن هناك فرق جوهري بينهما.
كائن المجلدات
في VBA، يمثل كائن المصنفات مجموعة المصنفات المفتوحة في Microsoft Excel. تخيل أن لديك عشر خزائن ملفات مفتوحة في نفس الوقت. وتريد الرجوع إلى المصنف الوحيد بينهم. في هذه الحالة، يجب عليك استخدام كائن المصنف للإشارة إلى هذا المصنف باستخدام اسمه.
كائن الموثق
في VBA، يمثل كائن المصنف مصنفًا واحدًا بين كافة المصنفات المفتوحة حاليًا في Microsoft Excel. أفضل طريقة لفهم ذلك هي التفكير في الإعلان عن متغير باعتباره رابطًا تريد استخدامه للإشارة إلى رابط معين في التعليمات البرمجية.
روابط مفيدة : إضافة علامة تبويب المطور | محرر فيجوال بيسك | تشغيل ماكرو | مصنف وحدات الماكرو الشخصية
الرجوع إلى مصنف في VBA
للعمل مع المصنفات في VBA، أول شيء تحتاج إلى معرفته هو كيفية الرجوع إلى مصنف في ماكرو. إليك الشيء السعيد: هناك طرق متعددة للإشارة إلى المصنف. وفي المستقبل سوف نستكشف كل واحد منهم.
1. بالاسم
أسهل طريقة للإشارة إلى المصنف هي من خلال اسمه. لنفترض أنك تريد تنشيط المصنف Book1.xlsx، وفي هذه الحالة يجب أن يكون الرمز الذي تحتاج إلى استخدامه كما يلي:
إن الإشارة إلى مصنف باسمه أمر بسيط للغاية، فأنت بحاجة إلى تحديد الاسم، وهذا كل شيء. ولكن هناك شيء واحد يجب عليك الاهتمام به : إذا لم يتم حفظ المصنف، فستحتاج إلى استخدام الاسم فقط. وإذا كان مسجلا فيجب عليك استخدام الاسم مع الامتداد.
2. حسب الرقم
عند فتح مصنف، يقوم Excel بتعيين رقم فهرس لهذا المصنف، ويمكنك استخدام هذا الرقم للإشارة إلى مصنف. المصنف الذي فتحته أولاً سيكون له رقم الفهرس “1” والثاني سيكون له رقم “2” وهكذا.
قد تبدو هذه الطريقة أقل واقعية بالنسبة لك لأنه من الصعب معرفة المصنف الموجود على أي رقم فهرس. ولكن هناك موقف واحد يكون فيه هذا الأسلوب مفيدًا جدًا للاستخدام، وهو إجراء حلقة عبر كافة المصنفات المفتوحة.
3. بواسطة هذا المصنف
يعد هذا المصنف خاصية تساعدك على الرجوع إلى المصنف الذي تكتب فيه التعليمات البرمجية. لنفترض أنك كتبت التعليمات البرمجية في “Book1” واستخدمت ThisWorkbook لحفظ المصنف. والآن، حتى عندما تقوم بتغيير اسم المصنف، فلن تحتاج إلى تغيير الرمز.
يقوم الكود أعلاه بحساب عدد الأوراق في المصنف حيث تمت كتابة هذا الكود ويعرض مربع رسالة بالنتيجة.
4. بواسطة ActiveWorkbook
إذا كنت تريد الرجوع إلى مصنف نشط، فيجب عليك استخدام خاصية “ActiveWorkbook”. أفضل استخدام لهذه الخاصية هو عندما تتأكد من المصنف الذي تم تنشيطه الآن. أو قمت بالفعل بتنشيط المصنف الذي تريد العمل عليه.
يقوم التعليمة البرمجية أعلاه أولاً بتنشيط المصنف “Book1″، ثم يستخدم خاصية المصنف النشط لحفظ المصنف النشط وإغلاقه.
الوصول إلى كافة الأساليب والخصائص
في VBA، كلما قمت بالإشارة إلى كائن، يسمح لك VBA بالوصول إلى الخصائص والأساليب المتوفرة مع هذا الكائن. وبالمثل، يأتي كائن المصنف مع الخصائص والأساليب. للوصول إليه، يجب عليك أولاً تحديد المصنف، ثم إدخال نقطة .
في اللحظة التي تكتب فيها نقطة (.)، يتم عرض قائمة الخصائص والأساليب. الآن يجب أن يكون لديك سؤال حول كيفية تحديد أي منهما هو خاصية وأيهما هو الطريقة.
ها هي الحيلة. إذا نظرت عن كثب، يمكنك التعرف على قالب طوب أخضر متحرك وعقرب رمادي أمام كل اسم في القائمة. لذا فإن جميع الخصائص لها هذه اليد الرمادية قبل الاسم والطرق لها لبنة خضراء متحركة.
على سبيل المثال، لاستخدام أسلوب مع مصنف
تخيل أنك تريد إغلاق مصنف (وهو أسلوب)، فأنت بحاجة إلى كتابة “إغلاق” أو تحديده من القائمة.
بعد ذلك، يتعين عليك إدخال أقواس البداية حتى يعرف IntelliSense الوسائط التي تحتاج إلى تعيينها.
باستخدام الطريقة Close، تحتاج إلى تحديد ثلاث وسيطات وكما ترون، كل هذه الوسائط اختيارية ويمكنك تجاهلها إذا أردت. لكن بعض الطرق لا تحتوي على وسيطات (على سبيل المثال: التنشيط)
على سبيل المثال، لاستخدام خاصية مع مصنف
تخيل أنك تريد حساب أوراق المصنف “book1”. في هذه الحالة، تحتاج إلى استخدام خاصية “جداول البيانات” ثم خاصية العد الإضافية لذلك.
في الكود أعلاه، كما قلت، قمت بتعيين book1، ثم تشير خاصية الورقة إلى جميع الأوراق، ثم خاصية العد لإحصائها. وعند تشغيل هذا الكود يظهر لك مربع رسالة بالنتيجة.
استخدام العبارة “WITH” مع المصنف
في VBA، توجد عبارة “With” يمكنها مساعدتك في العمل مع مصنف أثناء كتابة الماكرو بكفاءة. دعونا نرى المثال أدناه حيث لديك ثلاثة أسطر مختلفة من التعليمات البرمجية مع نفس المصنف، أي ActiveWorkbook.
باستخدام العبارة “WITH”، يمكنك الرجوع إلى المصنف النشط مرة واحدة فقط واستخدام كافة الخصائص والأساليب الموجودة في التعليمات البرمجية.
- أولاً، عليك أن تبدأ بعبارة البداية “With ActiveWorkbook” وتنهي العبارة بـ “End With”.
- بعد ذلك، عليك كتابة الكود بين هذه العبارة التي لديك في المثال أعلاه.
كما ترون في الكود أعلاه، فقد أشرنا إلى ذلك الخاص بـ ActiveWorkbook باستخدام عبارة With ومن ثم يجب استخدام كافة الخصائص والأساليب.
Sub vba_activeworkbook_with_statement() With ActiveWorkbook .Sheets.Add Count:=5 .Charts.Visible = False .SaveAs ("C:UsersDellDesktopmyFolderbook2.xlsx") End With End Sub
دعني أعطيك مثالاً بسيطًا وملموسًا حتى تفهم كل شيء. تخيل أنك تطلب مني الذهاب إلى الغرفة رقم 215 لإحضار زجاجة المياه، وعندما أعود ترسلني إلى الغرفة رقم 215 مرة أخرى للحصول على قلم، ثم ترسلني مرة أخرى للحصول على جهاز كمبيوتر محمول. الآن هذا هو الأمر: كل الأشياء التي طلبت مني إحضارها موجودة في الغرفة رقم 215. لذا من الأفضل أن ترسلني إلى الغرفة رقم 215 وتطلب مني الحصول على الأشياء الثلاثة مرة واحدة.
اقرأ: بـ – انتهى بـ
قم بتعريف متغير كمصنف
في بعض الأحيان تحتاج إلى الإعلان عن متغير باعتباره رابطًا لاستخدامه بشكل أكبر في الكود. حسنًا، لا يتطلب الأمر أي شيء خاص منك.
- استخدم عبارة DIM (إعلان).
- اكتب اسم المتغير.
- قم بتعيين نوع المتغير إلى المصنف.
التعامل مع الأخطاء
عند العمل مع كائن مصنف واحد أو أكثر في VBA، قد تحتاج أيضًا إلى معالجة الأخطاء. لنأخذ مثالاً على الخطأ “خطأ وقت التشغيل 9: الفهرس خارج النطاق” . يمكن أن يحدث هذا الخطأ لأسباب مختلفة.
- المصنف الذي تحاول الرجوع إليه غير مفتوح.
- ربما كتبت الاسم بشكل خاطئ.
- لم يتم حفظ المصنف الذي تشير إليه بعد وأنت تستخدم الامتداد بالاسم.
- إذا كنت تستخدم رقم الفهرس للإشارة إلى مصنف وكان الرقم الذي استخدمته أكبر من إجمالي عدد المصنفات المفتوحة.
الدروس ذات الصلة
- انسخ ملف Excel (المصنف) باستخدام VBA
- مصنف تنشيط VBA (ملف Excel)
- مصنف إغلاق VBA (ملف Excel)
- VBA الجمع بين المصنفات (ملفات Excel)
- VBA إنشاء مصنف جديد (ملف Excel)