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

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

الطباعة

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

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

العناصر التي لم يتم تحويلها

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

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

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

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

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

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

لا تتوفّر معادلات لبعض الأحداث من رمز VBA، مثل BeforeClose أو BeforeSave، في Apps Script، ولكن قد تتمكّن من إنشاء حل بديل.

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

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

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

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

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

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