دليل للعمل مع المصنفات في vba

في Excel، يعد المصنف أحد أهم كائنات Excel، ومن الضروري أيضًا فهم كيفية استخدام المصنفات والإشارة إليها عند كتابة أكواد VBA.

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

أشياء يجب معرفتها:

  • كائن المجلدات
  • كائن الموثق

هذين الجسمين يبدوان متماثلين، لكن هناك فرق جوهري بينهما.

كائن المجلدات

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

vba workbooks object

كائن الموثق

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

represents one single workbook

روابط مفيدة : إضافة علامة تبويب المطور | محرر فيجوال بيسك | تشغيل ماكرو | مصنف وحدات الماكرو الشخصية

الرجوع إلى مصنف في VBA

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

1. بالاسم

أسهل طريقة للإشارة إلى المصنف هي من خلال اسمه. لنفترض أنك تريد تنشيط المصنف Book1.xlsx، وفي هذه الحالة يجب أن يكون الرمز الذي تحتاج إلى استخدامه كما يلي:

refer to a workbook in vba by name

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

2. حسب الرقم

عند فتح مصنف، يقوم Excel بتعيين رقم فهرس لهذا المصنف، ويمكنك استخدام هذا الرقم للإشارة إلى مصنف. المصنف الذي فتحته أولاً سيكون له رقم الفهرس “1” والثاني سيكون له رقم “2” وهكذا.

refer to a workbook in vba b number

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

3. بواسطة هذا المصنف

يعد هذا المصنف خاصية تساعدك على الرجوع إلى المصنف الذي تكتب فيه التعليمات البرمجية. لنفترض أنك كتبت التعليمات البرمجية في “Book1” واستخدمت ThisWorkbook لحفظ المصنف. والآن، حتى عندما تقوم بتغيير اسم المصنف، فلن تحتاج إلى تغيير الرمز.

refer to a workbook in vba by this workbook

يقوم الكود أعلاه بحساب عدد الأوراق في المصنف حيث تمت كتابة هذا الكود ويعرض مربع رسالة بالنتيجة.

4. بواسطة ActiveWorkbook

إذا كنت تريد الرجوع إلى مصنف نشط، فيجب عليك استخدام خاصية “ActiveWorkbook”. أفضل استخدام لهذه الخاصية هو عندما تتأكد من المصنف الذي تم تنشيطه الآن. أو قمت بالفعل بتنشيط المصنف الذي تريد العمل عليه.

by active workbook

يقوم التعليمة البرمجية أعلاه أولاً بتنشيط المصنف “Book1″، ثم يستخدم خاصية المصنف النشط لحفظ المصنف النشط وإغلاقه.

الوصول إلى كافة الأساليب والخصائص

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

define the workbook first and enter a dot

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

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

على سبيل المثال، لاستخدام أسلوب مع مصنف

تخيل أنك تريد إغلاق مصنف (وهو أسلوب)، فأنت بحاجة إلى كتابة “إغلاق” أو تحديده من القائمة.

select close from a list

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

enter starting parentheses

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

على سبيل المثال، لاستخدام خاصية مع مصنف

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

use the sheets property

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

استخدام العبارة “WITH” مع المصنف

في VBA، توجد عبارة “With” يمكنها مساعدتك في العمل مع مصنف أثناء كتابة الماكرو بكفاءة. دعونا نرى المثال أدناه حيث لديك ثلاثة أسطر مختلفة من التعليمات البرمجية مع نفس المصنف، أي ActiveWorkbook.

using with statement with workbook

باستخدام العبارة “WITH”، يمكنك الرجوع إلى المصنف النشط مرة واحدة فقط واستخدام كافة الخصائص والأساليب الموجودة في التعليمات البرمجية.

  • أولاً، عليك أن تبدأ بعبارة البداية “With ActiveWorkbook” وتنهي العبارة بـ “End With”.
start with the starting statement
  • بعد ذلك، عليك كتابة الكود بين هذه العبارة التي لديك في المثال أعلاه.
write the code between the statement

كما ترون في الكود أعلاه، فقد أشرنا إلى ذلك الخاص بـ 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 وتطلب مني الحصول على الأشياء الثلاثة مرة واحدة.

اقرأ: بـ – انتهى بـ

قم بتعريف متغير كمصنف

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

declare variable as workbook
  1. استخدم عبارة DIM (إعلان).
  2. اكتب اسم المتغير.
  3. قم بتعيين نوع المتغير إلى المصنف.

التعامل مع الأخطاء

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

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

الدروس ذات الصلة

اضف تعليق

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *