Google Sheets позволяет записывать макросы , которые дублируют определенную последовательность действий в пользовательском интерфейсе, которую вы определяете. После записи макроса вы можете связать его с сочетанием клавиш в виде Ctrl+Alt+Shift+Number . Используйте это сочетание клавиш, чтобы быстро повторить те же шаги макроса, как правило, в другом месте или с другими данными. Вы также можете активировать макрос из меню «Расширения Sheets» > «Макросы» .
При записи макроса Sheets автоматически создает функцию Apps Script ( функцию макроса ), которая воспроизводит шаги макроса. Функция макроса добавляется в проект Apps Script, привязанный к листу, в файл с именем macros.gs . Если к листу уже привязан файл проекта с таким именем, функция макроса добавляется в него. Sheets также автоматически обновляет манифест проекта скрипта, записывая имя и сочетание клавиш, назначенные макросу.
Поскольку каждый записанный макрос полностью определен в Apps Script, вы можете редактировать их непосредственно в редакторе Apps Script. Вы даже можете писать макросы с нуля в Apps Script или брать уже написанные функции и превращать их в макросы.
Создание макросов в Apps Script
Вы можете использовать функции, написанные на Apps Script, в качестве макрофункций. Простой способ сделать это — импортировать существующую функцию из редактора таблиц.
В качестве альтернативы, вы можете создавать макросы в редакторе Apps Script, выполнив следующие действия:
- В интерфейсе Google Sheets выберите «Расширения» > «Apps Script» , чтобы открыть скрипт, привязанный к листу, в редакторе Apps Script.
- Напишите макрофункцию. Макрофункции не должны принимать аргументы и не должны возвращать значения.
- Отредактируйте манифест скрипта , чтобы создать макрос и связать его с функцией макроса. Назначьте ему уникальное сочетание клавиш и имя.
- Сохраните проект скрипта. После этого макрос станет доступен для использования в таблице.
- Проверьте работу макрофункции в таблице, чтобы убедиться, что она функционирует должным образом.
Редактировать макросы
Для редактирования макросов, прикрепленных к листу, выполните следующие действия:
- В интерфейсе Google Sheets выберите Расширения > Макросы > Управление макросами .
- Найдите макрос, который хотите отредактировать, и выберите > Редактировать макрос . Это откроет редактор Apps Script для файла проекта, содержащего функцию макроса.
- Отредактируйте функцию макроса, чтобы изменить его поведение.
- Сохраните проект скрипта. После этого макрос станет доступен для использования в таблице.
- Проверьте работу макрофункции в таблице, чтобы убедиться, что она функционирует должным образом.
Импортируйте функции в виде макросов.
Если к листу уже привязан скрипт, вы можете импортировать функцию в скрипт как новый макрос, а затем назначить ей сочетание клавиш. Для этого отредактируйте файл манифеста и добавьте еще один элемент в свойство sheets.macros[] .
В качестве альтернативы, выполните следующие действия, чтобы импортировать функцию в качестве макроса из пользовательского интерфейса Google Sheets:
- В интерфейсе Google Sheets выберите Расширения > Макросы > Импорт .
- Выберите функцию из представленного списка и нажмите «Добавить функцию» .
- Выберите , чтобы закрыть диалоговое окно.
- Выберите Расширения > Макросы > Управление макросами .
- Найдите в списке только что импортированную функцию. Назначьте макросу уникальное сочетание клавиш. Здесь же можно изменить имя макроса; по умолчанию оно совпадает с именем функции.
- Нажмите «Обновить» , чтобы сохранить конфигурацию макроса.
Манифестная структура для макросов
Приведенный ниже пример файла манифеста демонстрирует раздел манифеста , определяющий макросы для таблиц Sheets. Раздел sheets манифеста определяет имя и сочетание клавиш, назначенные макросу, а также имя функции макроса.
Манифесты содержат другие компоненты, относящиеся к свойствам Apps Script. Поля под ключом sheets напрямую связаны с функциональностью таблиц. Этот пример представляет собой лишь часть полного файла манифеста и не является полностью функциональным манифестом.
{
...
"sheets": {
"macros": [{
"menuName": "QuickRowSum",
"functionName": "calculateRowSum",
"defaultShortcut": "Ctrl+Alt+Shift+1"
}, {
"menuName": "Headerfy",
"functionName": "updateToHeaderStyle",
"defaultShortcut": "Ctrl+Alt+Shift+2"
}]
}
}
Более подробную информацию о том, как создаются манифесты макросов в Google Sheets , см. в соответствующем разделе.
Передовые методы
При создании или управлении макросами в Apps Script следуйте этим рекомендациям:
- Макросы работают эффективнее, если они не требуют больших ресурсов. По возможности, ограничьте количество действий, выполняемых макросом.
- Макросы лучше всего подходят для рутинных операций, которые необходимо часто повторять с минимальной или нулевой настройкой. Для других операций можно использовать вместо них пользовательский пункт меню .
- Всегда помните, что сочетания клавиш для макросов должны быть уникальными, и на одном листе одновременно может быть не более десяти макросов с сочетаниями клавиш. Любые дополнительные макросы могут быть выполнены только из меню «Расширения > Макросы» .
- Макросы, изменяющие одну ячейку, можно применять к диапазону ячеек, предварительно выделив весь диапазон и активировав макрос. Это означает, что часто нет необходимости создавать макросы, дублирующие одну и ту же операцию для заранее определенного диапазона ячеек.
То, чего вы не можете сделать
Существуют некоторые ограничения на то, что можно делать с макросами:
Используйте макросы вне связанных скриптов.
Макросы определяются в скриптах, привязанных к конкретным листам. Определения макросов игнорируются, если они определены в автономном скрипте или веб-приложении .
Определение макросов в Google Sheets (надстройки Google Workspace)
Распространение определений макросов с помощью надстройки Google Sheets для Google Workspace невозможно. Любые определения макросов в проекте надстройки Sheets игнорируются пользователями этой надстройки.
Распределение макросов в библиотеках скриптов
Распространение определений макросов с использованием библиотек Apps Script невозможно.
Используйте макросы вне таблиц Google Sheets.
Макросы доступны только в Google Таблицах и отсутствуют в Google Документах, Формах и Презентациях.