Google Docs, Google Drive, Google Scripts: как писать скрипты, макросы и код — часть 0
Я думаю, что очень многие из Вас умеют пользоваться Excel ‘ем или его аналогом, а некоторые, может, даже и гугловскими таблицами, про которые писали здесь.
Те, кто пользуется диском Google (Google Drive ), наверное уже использовали Таблицы (Spreadsheets ) и заметили, что по функционалу они немного уступают Экселю, но тем не менее это всё ещё мощный инструмент.
Я заранее Вас предупреждаю о возможной сложности дальнейшего примера, т.к. он не столько обучающий, сколько.. Мм.. Так сказать, конечный факт, которым Вы можете пользоваться и.. И развивать, если это Вам знакомо.
Соберитесь в комочек мозга.. И приступим 🙂
Создание таблицы Google Drive / Scripts и наполнение её контентом
Рассмотрим такую простенькую задачку:
У нас есть две колонки, в первой мы пишем названия фруктов, а во второй цвет, который соответствует этому фрукту. И мы хотим, чтобы при вводе цвета в колонке цветов автоматически менялся бы цвет названия фрукта.
Теперь добавляем на первый лист наши фрукты и цвета:
Примечание! Для того, чтобы считались фрукты, введите в ячейку А1 формулу:
Теперь создадим макрос. Для этого идем в меню » Инструменты » и выбираем » Управление скриптами «. Появится всплывающее меню, где мы жмем на кнопку » Создать «.
В появившемся окошке выбираем » Пустой проект «.
Откроется редактор, который на первый взгляд (да и на второй) может вызвать ступор.
Собственно, что дальше? А дальше мы начинаем писать наш собственный макрос ручками (да, всё самостоятельно). Как будет выглядеть наш макрос? Нужно составить схемку сего процесса (иначе этот процесс займет у Вас очень много времени).
Итак.. Вроде бы всё просто.. Если знать, как это делать, конечно 🙂
шКоддинг
Перейдем к самому коду:
Теперь я постараюсь Вам его объяснить. Функция onOpen добавляет меню » Скрипты » к таблице при открытии оной. И выглядит это дело так:
Эта строчка добавляет в переменную sheet идентификатор открытого нами документа, чтобы потом по нему обращаться к документу.
Эта переменная-массив содержит список названий менюшек и функций, которые выполняются при клике на эти менюшки.
Этот метод добавляет к нашему документу меню » Скрипты «.
Функция MakeMeHappy, собственно, и будет нашей главной функцией, которая красит фрукты.
Сначала я объявляю переменные:
Соответственно, в переменной sheet находится идентификатор нашего документа. В переменной range находится выделенная нами область (например, ячейки B2:B6 ), в переменной data находятся значения этих ячеек в виде массива.
В этом условии мы проверяем, что выбранный диапазон ячеек соответствует второй колонке (в которой цвета фруктов).
В этом цикле мы проходимся по каждой ячейке из диапазона B2:B
..Будет эквивалентно функции:
Методы setFontColor и setBackgroundColor задают цвета текста и фона в виде #rrggbb (r-red, g-green, b-blue, диапазоны цветов) соответственно.
В общем-то на этом всё. Но не совсем.
Скрипты и макросы таблиц Google, дополнение
Но можно сделать небольшое дополнение, чтобы не приходилось каждый раз запускать функции вручную.
Они будут приходить в случае, если скрипт выполнялся с ошибками.
Конечный результат действа:
Послесловие
Как и всегда, будем рады вопросам и всему такому прочему в комментариях. Следующая часть этого материала, более детально обучающая процессу, теперь обитает по этой вот ссылке, а следующая по этой.
Продолжения раз-два-готовим и три. Ну и комментарии конечно содержат много вкусного.
Как писать скрипты, макросы и код в Google Scripts — часть 1
Доброго времени суток, дорогие читатели!
Как некоторые могут помнить, у нас была одна статья на тему программирования в Google таблицах. Она была больше как эксперимент, который показал, что в общем-то это направление довольно популярно (да-да, про эксель я не забыл, он тоже будет. рано или поздно, но будет).
Тем, кто уже знаком с такими понятиями, как: функция, переменная, оператор, массив и тому подобное; будет (по всей видимости) скучновато, так что в таком случае рекомендую просмотреть статью по диагонали, вдруг что интересное для себя найдете.
Итак, вы уже знаете где находится редактор скриптов (если кто забыл, смотрите предыдущую статью), открываете его и. идете заваривать чай (кофе, какао, глинтвейн), а я пока расскажу немножко теории ( которую заодно надо бы освежить в памяти ).
С чего начинается любой скрипт? Очевидно, что с какого-то кода, но с какого? Вполне может так быть, что у вас уже появляются такие мысли при виде этого, а точнее того, белого экрана. Но это нормально. Когда мало опыта и много непонятного, хочется все бросить и лечь спать. Но не отчаивайтесь! И отойдите от кровати! Если я не буду писать это в некотором ироничном виде, то от моей заунывной статьи вы уже на третьей строчке усне..
Так вот, с чего нам начать? Я сейчас не имею в виду алгоритм действий, который вы держите в голове, или блок-схемы на листочке, нет. Нам следует начать с. объявления функции.
Объявление функции имеет определенный формат вида:
Где вместо FUNCTIONNAME вы можете ввести любое название, кроме уже зарезервированных системой гуглом, а в скобочках вы можете указать параметры, которые бы хотели передать в эту функцию.
Часто можно обойтись одной функцией, особенно, если у вас небольшая задачка. Однако при достаточно большом куске кода лучше всего делить функцию на несколько меньших функций, где одна вызывается из другой. Но об этом в следующей серии.
Итак, вы определились с вашей первой функцией, теперь что? А теперь нужно объявить переменные. Для вашей позиции в торговом автомате переменными могут быть: номер ряда, номер колонки, картинка позиции, её цена.
Переменными в общем случае может быть любой набор символов любого типа. Объявляются они очень просто, достаточно сказать котелок вари
И ой, она уже объявлена. А для чего это нужно?
Когда компилятор (такая штука, которая превращает удобочитаемый код для нас в машинный набор нулей и единиц для компьютера) так вот, когда компилятор начинает последовательно читать ваш код (а делает это он либо при сохранении вами кода, либо при запуске) то встречая неизвестные ему названия он первым и последним делом ищет где вы объявили ему (рассказали что это такое и что с этим делать) эти названия.
Однако, если вы напишете:
Если же вы объявите переменную, но не напишете чему она равна, то компилятор будет считать, что значение не определено ( undefined ).
Давайте подробнее остановимся на операторах. Есть несколько категорий:
В чем же разница между первым и вторым оператором? (ответ в следующей строке, выделите мышкой)
false
true
X | Y | X&Y | X+Y | !X | !Y | !X&!Y | !X+!Y |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 1 |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
Итак, в общем-то с основами разобрались. Теперь немного практики. Задача:
У нас есть некоторый набор значений в ячейках (cкажем, три ряда по четыре колонки случайных чисел), нам надо отдельно вывести сумму каждого ряда и его среднее значение (учитывая что мы не знаем о встроенных функциях, а пишем сами).
Таблица для нашего примера:
A | B | C | D | |
1 | 2 | 3 | 4 | 1 |
2 | -4 | 12 | 3 | 5 |
3 | 1 | 1 | 2 | 5 |
Итак, с чего начать? Нет, не с написания кода, сначала надо прикинуть план действий (хотя бы очень грубо).
Путем нехитрого гугления мы достаточно быстро выясним как вытащить значение ячейки из таблицы. Но какой смысл копировать код, ничего в нем не понимая? Правильно, никакого. С точки зрения.. ммм.. гугла таблица представляется собой объект (класс), состоящий из множества подклассов (типа матрешки). Иерархия там примерно такая:
Таким образом, мы можем получить значение как одной ячейки, так и диапазона ячеек. Воспользуемся вторым вариантом. Для этого пишем соотв. код:
Создаем нашу функцию:
Почти всегда первая строчка функции начинается со ссылки на таблицу. И здесь мы ссылаемся именно на текущую таблицу (ведь мы можем ссылаться и на другой лист, на другой файл и тп.).
Теперь достанем наши значения из ячеек:
Да, не очень красиво, но работает. Кстати проверить результат можно несколькими способами:
У кого не получилось, код целиком ниже:
Итак, первый пункт выполнен. Теперь приступаем ко второму. Учитывая, что мы (теперь) знаем сумму ряда и знали с самого начала кол-во чисел в ряду, добавляем еще три переменные и проверяем (значком я обозначаю место, где можно поставить Breakpoint для быстрого просмотра результатов):
При этом, мы должны указать данные точно в таком же формате, как мы их получили. Присваивание значений массивам в общем-то достаточно простая задача. Допустим у нас есть значения 1, 2, 3, 4, 5 и нам нужен массив. Объявляем:
Выглядит криповато, но массив можно записать еще таким образом:
А это уже другое дело! Хотя тем, кто на этих массивах уже не первую собаку съел, первый способ может быть удобней, т.к. быстрее.
Теперь же осталось дело за малым. Записать сумму и среднее для каждого ряда:
Запускаем и смотрим что у нас происходит на листе:
Послесловие
Итак, дабы не перегружать вас (дорогих читателей) информацией, первая часть на этом радостном событии завершена. Небольшой итог:
Теперь вы имеете представление что такое функция, переменная, зачем они нужны, какие операторы бывают и что делают, а также усвоили (я надеюсь) базовые навыки по работе с таблицами.
В следующей серии поговорим о том, как можно улучшить код, дабы не плодить кучу переменных и иметь возможность работать с таблицей значений переменной длинны (т.е. когда мы заранее не знаем сколько рядов и строк нам надо). А также немножко разобьем все это дело на несколько функций. Stay Tunned!
Как автоматизировать Google Sheets с помощью макросов
Google Sheets позволяет автоматизировать повторяющиеся задачи с помощью макросов, а затем вы можете привязать их к сочетаниям клавиш для их быстрого выполнения. Они работают, используя Google Apps Script, чтобы фиксировать ваши действия для последующего использования.
Что такое макросы?
Макрос или макроинструкция — это особая последовательность действий, позволяющая автоматизировать последовательность шагов для повышения производительности. Они работают, записывая ваши действия и сохраняя их в файле, который привязан к электронной таблице, в которой они были записаны.
Когда вы записываете макрос в Google Sheets, он автоматически создает скрипт приложения со всем кодом, который будет копировать ваши действия за вас. Это означает, что вы можете создавать сложные макросы, не зная, как писать код. В следующий раз, когда вы запустите его, Sheets будет делать все, что вы делали, когда записывали макрос. По сути, вы учите Google Sheets, как управлять документом по своему вкусу с помощью одной команды.
Макросы — это мощная функция, которая может выполнять практически все, что способен Sheets. Вот лишь несколько примеров его функциональности:
Как записать макрос в Google Sheets
Запустите Google Sheet и нажмите Инструменты> Макросы> Запись макроса.
Макросы> Запись макроса» width=»480″ height=»291″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20480%20291’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-04_16h22_57.png»/>
Это открывает меню записи в нижней части окна, с двумя вариантами записи ваших действий:
Выберите, хотите ли вы абсолютную или относительную ссылку, затем вы можете начать щелкать, форматировать и указывать листам, в каком порядке вы хотите, чтобы эти действия копировались.
После того, как вы захватили все действия для этого макроса, нажмите «Сохранить».
Введите имя для вашего макроса. Google также позволяет создавать ярлыки для десять макросов. Если вы хотите привязать макрос к сочетанию клавиш, введите число от 0 до 9 в соответствующем поле. Когда вы закончите, нажмите «Сохранить».
Если вам нужно изменить имя макроса или ярлык, вы можете отредактировать макрос, щелкнув Инструменты> Макросы> Управление макросами.
«Макросы»> «Управление макросами».» width=»531″ height=»314″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20531%20314’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_15h42_36.png»/>
В открывшемся окне настройте по желанию, а затем нажмите «Обновить».
В следующий раз, когда вы нажмете ярлык, связанный с макросом, он запустится без необходимости открывать меню макросов на панели инструментов.
Как запустить макрос в Google Sheets
Если ваш макрос является абсолютной ссылкой, вы можете запустить макрос, нажав сочетание клавиш, или перейдите в Инструменты> Макросы> Ваш макрос и затем щелкните соответствующую опцию.
Макросы> YourMacroName, чтобы запустить макрос» width=»650″ height=»332″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20650%20332’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_15h40_08.png»/>
В противном случае, если ваш макрос является относительной ссылкой, выделите ячейки в вашей электронной таблице, на которых вы хотите запустить макрос, а затем нажмите соответствующий ярлык или выберите его в меню «Инструменты»> «Макросы»> «Ваш макрос».
Макросы> YourMacroName, чтобы запустить макрос» width=»650″ height=»209″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20650%20209’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_15h54_48.png»/>
Как импортировать макросы
Как упоминалось ранее, когда вы записываете макрос, он привязывается к электронной таблице, в которую вы его записали. Но что, если вы хотите импортировать макрос из другой таблицы? Хотя это не простая и простая задача, вы можете сделать это с помощью этого небольшого обходного пути.
Поскольку записанные макросы хранятся как функции в скрипте Google Apps, для импорта макроса необходимо скопировать функцию и вставить ее в файл макроса нового листа.
Откройте Google Sheet с макросом, который вы хотите скопировать, а затем нажмите Инструменты> Макросы> Управление макросами.
Макросы> Управление макросами» width=»531″ height=»314″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20531%20314’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_15h42_36.png»/>
Затем нажмите значок «Дополнительно» рядом с макросом, который вы хотите скопировать, а затем нажмите «Редактировать сценарий».
Все макросы сохраняются в одном файле, поэтому, если у вас есть пара сохраненных макросов, вам, возможно, придется просмотреть их. Имя функции совпадает с именем, которое вы дали при создании.
Выделите макрос (ы), который вы хотите скопировать, затем нажмите Ctrl + C. Обязательно скопируйте все до и включая заключительную точку с запятой.
Теперь откройте другую электронную таблицу, в которую вы будете импортировать макрос, и нажмите «Инструменты»> «Макросы»> «Записать макрос».
Макросы> Запись макроса» width=»479″ height=»244″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20479%20244’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_19h01_00.png»/>
Сразу нажмите «Сохранить», не записывая никаких действий, чтобы создать функцию заполнителя в макрофайле листа для нас. Вы удалите это чуть позже.
Нажмите «Сохранить» еще раз.
Откройте «Сценарий Google Apps», нажав «Инструменты»> «Редактор сценариев», а затем откройте файл macros.gs на левой панели. Удалите существующую функцию, а затем нажмите Ctrl + V, чтобы вставить макрос из другого листа.
Нажмите Ctrl + S, чтобы сохранить сценарий, закрыть вкладку и вернуться к таблице.
Ваша электронная таблица читает файл macros.gs и ищет внесенные в него изменения. Если обнаружена новая функция, вы можете использовать функцию импорта, чтобы добавить макрос из другого листа.
Далее нажмите Инструменты> Макросы> Импорт.
Макросы> Импорт, чтобы импортировать макросы в этот документ» width=»478″ height=»282″ svg+xml,%3Csvg%20xmlns=’http://www.w3.org/2000/svg’%20viewBox=’0%200%20478%20282’%3E%3C/svg%3E» data-lazy-src=»https://gadgetshelp.com/wp-content/uploads/images/htg/content/uploads/2019/05/2019-05-06_16h23_03.png»/>
Наконец, нажмите «Добавить функцию» под макросом, который вы хотите добавить.
К сожалению, вам придется снова привязать макрос вручную к сочетанию клавиш. Просто следуйте инструкциям, упомянутым ранее, и вы будете готовы использовать этот макрос на нескольких листах.
Это все, что нужно для создания и использования макросов в Google Sheets. Нет никаких ограничений на процедуры, которые вы можете создать для своих электронных таблиц, чтобы ограничить количество времени, которое вы тратите на выполнение этих повторяющихся задач.
Cоветы и руководства по Google Таблицам
Мастер Google Таблиц с полезными советами и руководствами
Как заставить Google Таблицы запускать макрос автоматически
Ускорение работы с электронными таблицами за счет автоматизации задач еще никогда не было таким простым благодаря макросам. Google Таблицы позволяют записывать макросы. Это ряд шагов, которые вы можете автоматизировать, чтобы вам не нужно было повторять одни и те же действия в электронной таблице снова и снова, что сэкономит ваше время в работе.
Использование Google Таблиц для запуска макроса автоматически включает данные форматирования, настройку стиля и размера шрифта, добавление строк или столбцов или любое действие в программном обеспечении. Макросы даже позволяют связать настроенное сочетание клавиш и выполнить его с другим набором данных в электронной таблице, просто используя клавиатуру.
Макросы автоматически сохраняются в электронной таблице, над которой вы работаете, поэтому в следующий раз, когда вам понадобится применить такое же форматирование к другому набору данных, просто щелкните макрос, который вы создали ранее. Всего за несколько секунд ваш лист будет выглядеть именно так, как вы хотите.
Макро-функции создаются с помощью функции скрипта приложений Google Таблиц, также известной как макрос-функция.
Она привязана к проекту скрипта с названием «macros.gs».
Вы можете использовать скрипт приложений для написания и создания макросов. Но если вы не знаете, как писать коды, вы можете просто выполнить следующие шаги при создании макросов.
Создание макроса в Google Таблицах
Ниже приведены несколько примеров скриптов Google Sheets для таблиц с длинными списками данных.
Скажем, вам поручено отформатировать его, чтобы он выглядел организованным. Вы можете сделать строки и столбцы одинакового размера, убедитесь, что вы видите весь текст в ячейках, сделайте заголовки полужирными и выделенными желтым цветом и заморозьте первую строку, чтобы вы могли легко перемещаться по оставшимся данные внизу таблицы.
Функций много, правда? Макросы могут помочь сделать это проще на постоянной основе.
Первое, что вам нужно сделать, это перейти в Инструменты> Макросы> Записать макрос.
После этого вам будет предложено записать макрос. Вы также увидите «Запись нового макроса…» внизу таблицы.
У вас будет два варианта: «Использовать абсолютные ссылки» или «Использовать относительные ссылки».
В этом примере мы будем использовать абсолютные ссылки.
Как только ваш макрос настроен на запись, вы можете приступить к редактированию своей электронной таблицы.
Запишите первое действие, которое вы хотите совершить. В этом случае мы сделаем строки и столбцы одинакового размера и весь текст в ячейках видимым. Сделать это;
В следующий раз, когда вам дадут электронную таблицу, подобную этой, вам не придется снова выполнять все действия для достижения желаемого формата. Просто нажмите «Инструменты»> «Макросы»> «Форматирование» (имя созданного вами макроса).
Вы также можете нажать Ctrl + Alt + Shift + 1 (номер, которому вы присвоили свой макрос). Чтобы добавить еще один макрос в электронную таблицу, просто повторите описанный выше процесс. Нажмите «Инструменты»> «Макросы»> «Записать макрос» и начните выполнять действия, которые вы хотите записать, чтобы создать другой формат.
Обязательно напишите для макроса другое имя, чтобы не запутать. Не забудьте ввести сочетание клавиш, чтобы облегчить выполнение макроса.
В электронную таблицу можно добавить до 10 макросов.
Если вы хотите изменить имя и сочетание клавиш для созданного макроса, просто:
Редактирование с использованием макроязыка Google Таблиц
Вы можете редактировать макросы, прикрепленные к электронной таблице, если хотите что-то изменить. Чтобы отредактировать макрос:
Импорт макросов в другую электронную таблицу
Вы можете применить созданные вами макросы только к той же электронной таблице, на которой вы их создали, и вы не можете использовать их для выполнения автоматизации в другой электронной таблице. К счастью, вы можете импортировать макросы в другую таблицу.
Чтобы импортировать макрос:
Однако макросу не назначается сочетание клавиш. Вы можете захотеть дать ярлык для более легкого доступа. Для этого нажмите «Инструменты»> «Макросы»> «Управление макросами», присвойте макросу желаемый номер и нажмите «Обновить». Макрос в вашей новой электронной таблице теперь имеет сочетание клавиш.
Чтобы проверить, работает ли импортированный макрос, нажмите «Инструменты»> «Макросы»> «Форматирование» или нажмите «Ctrl + Alt + Shift + 1». Теперь таблица должна выглядеть как предыдущая.
О чем следует помнить при использовании макросов Google Таблиц
Получив новую электронную таблицу, максимально используйте ваши макросы, просто скопировав лист в исходную электронную таблицу, содержащую ваши макросы, или сделав копию этого листа. Благодаря этому вам не придется вручную выполнять повторяющиеся действия в Google Таблицах.
Вы можете записывать множество действий с помощью одного макроса. Однако макросы хорошо себя чувствуют, если зарегистрированы с ограниченными действиями. Если у вас есть многочисленные требования к форматированию на одном листе, лучше сделать несколько макросов. Просто не забудьте назначить уникальное сочетание клавиш для каждого макроса, который вы делаете, и помните, что вы можете создать не более 10 макросов в электронной таблице.
Можете ли вы запускать макросы Excel в Google Таблицах?
К сожалению, макросы, которые вы делаете в Таблицах, применимы только к Google Таблицам. Вы не можете копировать или создавать макросы в других инструментах Google Suite, а также нелегко импортировать макрос Excel в Google Таблицы или скрыть их.
Движение вперед с помощью макросов
Макросы могут занять некоторое время, чтобы понять, как запускать макрос Google Таблиц автоматически, но в конечном итоге это сэкономит вам так много времени. Автоматизация значительно сокращает рабочее время.
Ознакомьтесь с другими нашими руководствами по Google Таблицам, которые помогут вам стать лучшим пользователем электронных таблиц, которым вы можете быть.
Теперь вы знаете какие однокоренные слова подходят к слову Как написать макросы в гугл таблицах, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать макросы в гугл таблицах", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.