حلّ المشاكل الشائعة

يسرد هذا الدليل المشاكل الشائعة التي قد تواجهها عند تحويل رمز Visual Basic for Applications (VBA)‎ إلى برمجة تطبيقات باستخدام "أداة تحويل الماكرو".

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

VBA APIالسلوك في "برمجة تطبيقات Google"
PrintOutيتم التحويل إلى "برمجة تطبيقات Google"، ولكن يطبع Apps Script API في ملف بدلاً من الطابعة. طباعة ملف PDF يدويًا
PrintToFileيتم التحويل إلى "برمجة تطبيقات Google". يتم حفظ ملف PDF في مجلد "ملفاتي".

السلع التي لم يتمّ تحويلها

لا يحوّل Macro Converter الميزات التالية، ويجب تحويلها يدويًا:

العوامل التي تؤدي إلى الظهور

لا يحوّل Macro Converter نوعَين من المشغّلات، وهما اختصارات لوحة المفاتيح وبعض المشغّلات المستندة إلى الأحداث. في كثير من الحالات، يمكنك إنشاء هذه المشغّلات يدويًا.

اختصارات لوحة المفاتيح

لإضافة اختصارات لوحة المفاتيح، اتّبِع الخطوات اللازمة لاستيراد الدوال كوحدات ماكرو.

المشغّلات المستندة إلى الأحداث

لا تتوفّر في "برمجة تطبيقات Google" بعض الأحداث من رمز VBA، مثل BeforeClose أو BeforeSave، ولكن قد تتمكّن من إيجاد حل بديل.

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

لا يمكن إيجاد حلول بديلة لحدث BeforeSave لأنّ "جداول بيانات Google" تحفظ التغييرات تلقائيًا أثناء إجرائها.

نماذج المستخدمين

في VBA، UserForm هي نافذة أو مربّع حوار في واجهة مستخدم (UI) أحد التطبيقات. لا يحوّل Macro Converter UserForms. يمكنك إنشاؤها يدويًا في برمجة تطبيقات.

إنشاء مربّع حوار لنموذج مستخدم

  1. على الكمبيوتر، افتح الملف المحوَّل في جداول بيانات Google.
  2. في أعلى الصفحة، انقر على الإضافات > ** برمجة تطبيقات**.
  3. على يمين المحرّر بجانب "الملفات"، انقر على "إضافة ملف" > HTML. ننصحك بتسمية ملف HTML بالاسم نفسه الذي أطلقته على UserForm الأصلي في VBA.
  4. أضِف الحقول والمعلومات التي تريد عرضها في نموذجك. يمكنك الاطّلاع على مزيد من المعلومات عن نماذج HTML على W3school.com.
  5. على يمين الصفحة، انقر على ملف برمجة تطبيقات (ملف GS) الذي يتضمّن الرمز البرمجي المحوّل.
  6. إذا كان لديك مشغّل onOpen في الرمز، عدِّله باستخدام الرمز التالي. إذا لم يكن لديك مشغّل onOpen في الرمز البرمجي، أضِف الرمز التالي.
    function onOpen() {
     SpreadsheetApp.getUi()
         .createMenu('User Form')
         .addItem('Show Form', 'showForm')
         .addToUi();
    }
    function showForm() {
     var html = HtmlService.createHtmlOutputFromFile('userform_module_name')
         .setWidth(100)
         .setTitle('Sign-up for Email Updates');
     SpreadsheetApp.getUi().showSidebar(html);
    }
        
  7. استبدِل userform_module_name باسم ملف HTML الذي أضفته.
  8. في أعلى الصفحة، انقر على "حفظ المشروع" .
  9. انتقِل إلى "جدول بيانات Google" وأعِد تحميل الصفحة.
  10. في أعلى "جدول بيانات Google"، انقر على نموذج المستخدم > عرض النموذج.

النطاقات المُعنوَنة

في Excel، النطاقات المُعنوَنة هي أسماء تُمنح لخلية واحدة أو نطاق من الخلايا.

عند تحويل ملفات Excel إلى "جداول بيانات Google"، لا يتم تحويل بعض أنواع النطاقات المسماة لأنّها غير متوافقة. يسرد الجدول التالي أمثلة شائعة:

النطاقات المُعنوَنة غير المتوافقةالوصف
الجداولغير متاح في "جداول بيانات Google"، ولكن يتوفّر حل بديل.

لإعادة إنشاء هذا النطاق المُعنوَن في "جداول بيانات Google"، أضِف نطاقًا مُعنوَنًا يشير إلى ترميز A1 لنطاق الجدول. استخدِم الاسم نفسه الذي استخدمته للنطاق المسمّى الأصلي في رمز VBA لكي يتعرّف الرمز المحوّل عليه.
قائمة النطاقاتغير متاح في "جداول بيانات Google". لا يتوفّر حلّ بديل.