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

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

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

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

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

Вы можете взять функции, написанные на Apps Script, и использовать их как макрофункции. Самый простой способ сделать это — импортировать существующую функцию из редактора Google Sheets.

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

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

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

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

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

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

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

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

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

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

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

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

Дополнительную информацию о том, как создаются манифесты макросов Таблиц, см . в ресурсе манифестов макросов Sheets .

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

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

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

Вещи, которые ты не можешь сделать

Есть несколько ограничений на то, что вы можете делать с макросами:

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

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

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

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

Распространение макросов в библиотеках сценариев.

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

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

Макросы — это только функция Google Таблиц, они не существуют в Google Docs, Forms или Slides.