Макросы Google Таблиц

Google Таблицы позволяют записывать макросы , дублирующие определённую последовательность действий в пользовательском интерфейсе. После записи макроса его можно связать с сочетанием клавиш Ctrl+Alt+Shift+Number . Это сочетание клавиш позволяет быстро повторить те же шаги макроса, обычно в другом месте или с другими данными. Вы также можете активировать макрос из меню «Расширения Google Таблиц» > «Макросы» .

При записи макроса Google Таблицы автоматически создают функцию Apps Script ( макрос-функцию ), которая копирует шаги макроса. Макрос-функция добавляется в проект Apps Script , привязанный к листу, в файл с именем macros.gs . Если к листу уже привязан файл проекта с таким именем, макрос-функция добавляется к нему. Google Таблицы также автоматически обновляют манифест проекта скрипта, записывая имя и назначенное макросу сочетание клавиш.

Поскольку каждый записанный макрос полностью определён в Apps Script, вы можете редактировать их непосредственно в редакторе Apps Script. Вы даже можете писать макросы с нуля в Apps Script или использовать уже написанные функции и превращать их в макросы.

Создание макросов в Apps Script

Вы можете использовать функции, написанные на Apps Script, в качестве макросов. Проще всего это сделать, импортировав существующую функцию из редактора Google Таблиц.

Кроме того, вы можете создать макросы в редакторе Apps Script, выполнив следующие действия:

  1. В пользовательском интерфейсе Google Таблиц выберите «Расширения» > «Скрипт приложений» , чтобы открыть скрипт, привязанный к таблице, в редакторе скриптов приложений.
  2. Напишите макрофункцию. Макрофункции не должны принимать аргументов и возвращать значения.
  3. Отредактируйте манифест скрипта , чтобы создать макрос и связать его с функцией макроса. Назначьте ему уникальное сочетание клавиш и имя.
  4. Сохраните проект скрипта. После этого макрос станет доступен для использования на листе.
  5. Протестируйте функцию макроса на листе, чтобы убедиться, что она работает так, как задумано.

Редактирование макросов

Вы можете редактировать макросы, прикрепленные к листу, выполнив следующие действия:

  1. В пользовательском интерфейсе Google Таблиц выберите Расширения > Макросы > Управление макросами .
  2. Найдите макрос, который хотите отредактировать, и выберите > Изменить макрос . Откроется редактор Apps Script с файлом проекта, содержащим функцию макроса.
  3. Отредактируйте функцию макроса, чтобы изменить поведение макроса.
  4. Сохраните проект скрипта. После этого макрос станет доступен для использования на листе.
  5. Протестируйте функцию макроса на листе, чтобы убедиться, что она работает так, как задумано.

Импорт функций как макросов

Если к листу уже привязан скрипт, вы можете импортировать функцию в скрипт как новый макрос и назначить ему сочетание клавиш. Это можно сделать, отредактировав файл манифеста и добавив ещё один элемент в свойство sheets.macros[] .

В качестве альтернативы выполните следующие действия, чтобы импортировать функцию как макрос из пользовательского интерфейса Таблиц:

  1. В пользовательском интерфейсе Google Таблиц выберите Расширения > Макросы > Импорт .
  2. Выберите функцию из представленного списка и нажмите «Добавить функцию» .
  3. Чтобы закрыть диалоговое окно, выберите .
  4. Выберите Расширения > Макросы > Управление макросами .
  5. Найдите в списке только что импортированную функцию. Назначьте макросу уникальное сочетание клавиш. Здесь также можно изменить имя макроса; по умолчанию оно совпадает с именем функции.
  6. Нажмите «Обновить» , чтобы сохранить конфигурацию макроса.

Структура манифеста для макросов

В следующем фрагменте файла манифеста показан раздел манифеста , определяющий макросы Google Таблиц. В разделе, посвященном sheets , определяются имя и сочетание клавиш, назначенные макросу, а также имя функции макроса.

  {
    ...
    "sheets": {
      "macros": [{
        "menuName": "QuickRowSum",
        "functionName": "calculateRowSum",
        "defaultShortcut": "Ctrl+Alt+Shift+1"
      }, {
        "menuName": "Headerfy",
        "functionName": "updateToHeaderStyle",
        "defaultShortcut": "Ctrl+Alt+Shift+2"
      }]
    }
  }

Более подробную информацию о том, как создаются манифесты макросов Таблиц, см. в ресурсе «Манифест макросов Таблиц».

Лучшие практики

При создании или управлении макросами в Apps Script рекомендуется придерживаться следующих рекомендаций.

  1. Макросы более производительны, когда они лёгкие. По возможности ограничьте количество действий, выполняемых макросом.
  2. Макросы лучше всего подходят для рутинных операций, которые необходимо часто повторять с минимальной настройкой или вообще без неё. Для других операций рассмотрите возможность использования настраиваемого пункта меню .
  3. Всегда помните, что сочетания клавиш для макросов должны быть уникальными, и на одном листе одновременно может быть не более десяти макросов с сочетаниями клавиш. Любые дополнительные макросы можно запустить только из меню «Расширения» > «Макросы» .
  4. Макросы, вносящие изменения в одну ячейку, можно применить к диапазону ячеек, сначала выбрав весь диапазон, а затем активировав макрос. Это означает, что зачастую нет необходимости создавать макросы, дублирующие одну и ту же операцию в заданном диапазоне ячеек.

Вещи, которые нельзя делать

Существует несколько ограничений на действия, которые можно выполнять с макросами:

Использовать макросы вне привязанных скриптов

Макросы определяются в скриптах, привязанных к конкретным Google Таблицам. Определения макросов игнорируются, если они определены в отдельном скрипте или веб-приложении .

Определение макросов в надстройках Таблиц

Распространять определения макросов с помощью надстройки «Таблицы» нельзя. Любые определения макросов в проекте надстройки «Таблицы» игнорируются пользователями этой надстройки.

Распространять макросы в библиотеках скриптов

Вы не можете распространять определения макросов с использованием библиотек Apps Script.

Используйте макросы вне Google Таблиц

Макросы — это функция только в Google Таблицах и не существуют в Google Документах, Формах или Презентациях.