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

في ما يلي المشاكل الشائعة التي قد تواجهها عند تحويل رمز VBA إلى "برمجة تطبيقات Google" باستخدام محوِّل الماكرو.

الطباعة

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

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

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

لا يتم تحويل الميزات التالية بواسطة محول الماكرو ويجب تحويلها يدويًا:

أسباب طلب المساعدة

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

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

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

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

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

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

بما أنّ "جداول بيانات Google" تحفظ تلقائيًا كل تعديل، لا يمكن تقديم حلول بديلة لأحداث مثل BeforeSave.

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

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

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

  1. على الكمبيوتر، افتح الملف المحوَّل في جداول بيانات Google.
  2. في أعلى الصفحة، انقر على الإضافات > ** برمجة التطبيقات**.
  3. على يمين المحرر بجانب "الملفات"، انقر على إضافة ملف > HTML. ننصحك بمنح ملف HTML الاسم نفسه الذي يحمله نموذج UserForm الأصلي في VBA.
  4. أضِف الحقول والمعلومات التي تريد أن تظهر في النموذج. تعرّف على مزيد من المعلومات حول نماذج HTML على W3school.com.
  5. على يمين الصفحة، انقر على ملف "برمجة تطبيقات Google" (ملف 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". وليس هناك حل بديل.