MS Excel Automation بدون وحدات الماكرو في التقارير التي تم إنشاؤها. أي أفكار؟
-
27-09-2019 - |
سؤال
أعلم أن الويب مليء بأسئلة مثل هذه ، لكنني ما زلت لم أتمكن من تطبيق الإجابات التي يمكنني العثور عليها على موقفي.
أدرك أن هناك VBA ، لكنني لم أعجبني دائمًا بوجود البرنامج/الماكرو الذي يعيش داخل ملف Excel ، مع التحذيرات الأمنية الناتجة ، وما إلى ذلك. تركهم خالية من الكلي. الآن ، تمكنت من "رسم العمود الأول الأزرق" لجميع الملفات في دليل يتبع هذا النهج ، لكنني بحاجة إلى القيام بعمليات أكثر تعقيدًا (المخططات ، الجداول المحورية ، إلخ) ، والتي ستكون أصعب بكثير (مستحيل ؟) مع vbscript من مع VBA.
بالنسبة لهذا المثال المحدد ، فإن معرفة كيفية إزالة جميع وحدات الماكرو من جميع الملفات بعد المعالجة ستكون كافية ، ولكن جميع الاقتراحات مرحب بها. أي مراجع جيدة؟ سيتم تقدير أي نصيحة حول أفضل طريقة للتعامل مع معالجة الدُفعات الخارجية لملفات Excel.
شكرًا!
ملاحظة: لقد جربت بفارغ الصبر حزمة مارك هاموند الرائعة PYWIN32 ، لكن عدم وجود توثيق وردود الفعل المترجمة ، أزعجني.
المحلول
يمكنك وضع وحدات الماكرو في ملف Excel منفصل.
نصائح أخرى
تقريبًا أي شيء يمكنك القيام به في VBA لأتمتة Excel التي يمكنك القيام بها في VBScript (أو أي نص/لغة أخرى تدعم COM).
بمجرد إنشاء مثيل من Excel.Application ، يمكنك إسقاط VBA إلى VBS والانتقال من هناك.
إذا كانت إمكانية Excel/VBA التي تتطلع إلى استخدامها ، فيمكنك دائمًا البدء بإنشاء جميع التعليمات البرمجية التي ستتفاعل مع ملفات Excel التي تريد العمل عليها داخل ملف Excel - نوع من الملف الرئيسي يتم فصله عن الملفات العادية ، كما اقترح Karsten W.
هذا يمنحك حرية كتابة Excel/VBA.
بعد ذلك ، يمكنك الاتصال بمصنفك الرئيسي (الذي يمكن تكوينه لتشغيل التعليمات البرمجية عند فتح الكتاب ، على سبيل المثال) من برنامج نصي VB وملف الدُفعات ومجدول المهام وما إلى ذلك.
إذا كنت ترغب في الحصول على خيال ، فيمكنك حتى استخدام VBA في ملفك الرئيسي لإنشاء/تعديل/حذف وحدات الماكرو/VBA المخصصة في أي من الملفات المستهدفة التي تقوم بمعالجتها.
المعلومات الخاصة بجميع التقنيات التي أصفها حصلت عليها من مستندات مرجعية مدمجة في Excel VBA ، لكنها بالتأكيد تساعد على أن تكون على دراية بمهام البرمجة المحددة التي تعالجها. أنصح أن أفضل طريقة هي تجميع مهامك (على سبيل المثال ، جعل العمود الأزرق ، والتحديث/الفرز البيانات ، إلخ) واحد تلو الآخر ، ثم القلق بشأن الأتمتة في النهاية.