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

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

الطباعة

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. على الكمبيوتر، افتح الملف المحوَّل في جداول بيانات Google.
  2. في أعلى الصفحة، انقر على الإضافات > ** Apps Script**.
  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". ليس هناك حل بديل.