Преобразование макросов VBA в скрипт приложений

Прежде чем вы начнете

Возможно, вам захочется обновить несовместимые API в коде VBA перед преобразованием файлов. Для файлов, имеющих статус «Точно поддерживается» , вы можете перейти к Шагу 1: Конвертируйте файлы .

Изменение несовместимых API VBA.

Для файлов со статусом «Поддерживается обходной путь» или «Требует исследования» вы можете применить обходные пути и исправления после преобразования в Apps Script, но мы рекомендуем сначала изменить знакомый вам код VBA, прежде чем конвертировать файлы.

Для каждого API, помеченного как «Поддерживается с обходным решением» или «Требует исследования» в отчете о совместимости, мы рекомендуем следующее:

  • Если функция, выполняемая API, не важна для правильной работы вашего макроса VBA, удалите ее из кода VBA. Если это так, измените свой код, чтобы реализовать аналогичное поведение с поддерживаемыми API VBA .
  • Для API со статусом Поддерживается с обходным решением : если вы не можете переключиться на поддерживаемые API VBA, оставьте API VBA как есть. После преобразования в Apps Script в комментариях к преобразованному коду Apps Script рекомендуется использовать известный обходной путь для этого API.
  • Если проблема связана с нереализованной языковой конструкцией , перепишите код, чтобы избежать использования этих конструкций.
  • Для API со статусом Требуется расследование проверьте, содержит ли ваш код какой-либо из следующих API:

    • Adodb.connection
    • CreateObject : этот API часто используется для подключения к базе данных и программному обеспечению для планирования ресурсов предприятия.
    • Shell.execute
    • OleObject

    Если да, мы рекомендуем вам не конвертировать файлы, которым принадлежат эти API, и изучить другие варианты. Эти API обычно выполняют критические операции для макроса, такие как подключение к базе данных или доступ к локальному ресурсу, и Apps Script, как правило, не является хорошим решением.

Шаг 1. Конвертируйте файлы

  1. На своем компьютере откройте Google Диск .
  2. На правой боковой панели щелкните надстройку «Конвертер макросов». Значок конвертера макросов . Если вы не видите боковую панель, в правом нижнем углу нажмите «Показать боковую панель .
  3. Нажмите «Добавить файлы и папки» . Конвертер макросов распознает только файлы Excel.
  4. Выберите файлы или папки, которые хотите преобразовать, и нажмите «Выбрать» . Выбирайте менее 2000 файлов одновременно.
  5. Чтобы изменить место сохранения преобразованных файлов, нажмите « папку назначения» и выберите нужную папку. В противном случае файлы сохраняются в папке MyDrive.
  6. Нажмите «Конвертировать» .
  7. Когда преобразование завершится, нажмите «Просмотреть результаты» .

Шаг 2. Проверьте конвертированные файлы

Запустите код скрипта приложений

После преобразования файлов проверьте функции Apps Script. Проверьте преобразованные файлы с данными, которые вы обычно используете в файлах Excel. Если возможно, сравните выходные данные преобразованных файлов Таблиц с результатами исходных файлов Excel.

Проверьте свои триггеры

Если ваши файлы содержат триггеры, такие как onOpen() , onEdit() или onClick() , проверьте и свои триггеры. Некоторые триггеры VBA не преобразуются автоматически, и их необходимо устранить в скрипте приложений. См. раздел Решение распространенных проблем .

Просмотр файлов ReadMe

Если файл ReadMe был создан с помощью преобразованного файла, просмотрите проблемы преобразования, перечисленные в файле ReadMe.

  • Если проблемы могут быть проблематичными в случаях, которые вы не тестировали, примените рекомендуемые изменения к своему коду.
  • Если вы протестировали все возможные сценарии и все работает так, как задумано, возможно, вам не нужно вносить изменения.

Шаг 3. Исправьте ошибки

Если при тестировании файлов вы столкнулись с ошибками, см. раздел Исправление ошибок в преобразованном коде .

Если код выполняется без ошибок, но результат не соответствует ожиданиям, откройте файл ReadMe. Просмотрите каждый раздел, чтобы определить причину проблемы и применить рекомендуемое исправление.

После исправления ошибок еще раз проверьте файл, чтобы убедиться, что все работает так, как задумано.