14,4K подписчиков

29. Google таблицы. Начало работы со скриптами. Основные моменты

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.

Скрипт - это программа, которая выполняет одно или несколько действий.

Например, когда вы записываете макрос - гугл таблицы автоматически формируют скрипт. Все скрипты хранятся в отдельном разделе и не видны на рабочем поле Гугл таблиц, но сохраняются вместе с вашим рабочим файлом. Т.е. переслав кому-либо рабочую книгу, вы пересылаете и скрипты тоже.

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

Из меню "Расширения" выполняем пункт "App Script"

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-2

После выполнения этой команды запустится редактор скриптов

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-3

Любая функция начинается с объявления того, что это функция "function" и имеет имя (на образце сверху "myFunction"). Далее в скобках указываются аргументы - не обязательно. И уже в фигурных стрелках идет сам скрипт (программа).

Что такое аргументы?

Это некие данные, учитывая которые нужно провести вычисления.

Например возьмем функцию y=x*2

Эта функция умножает число x на два и присваивает результат переменной y

Назовем эту функцию, допустим umnogen

Как будет выглядеть скрипт этой функции (упрощенно):

function umnogen(x)

{

y=х*2

}

Для того, чтобы запустить эту функцию нужно будет ввести команду. Например, давайте с помощью функции удвоим число 10

umnogen(10)

Результатом выполнения такой команды будет присвоение игрику числа 20 (10 умножим на 2)

Можно передавать при вызове функции не один аргумент, а достаточно много. Всё зависит от выполняемых задач, например

function my_umnogen(x, y, z)

В нашем примере есть переменная y. На самом деле она не понятна для нашей программы. Программа не знает, что это за переменная. Поэтому все переменные нужно обозначить - сообщить компьютеру, что это за переменные.

Для описания (обозначения) переменных служит специальный раздел в программе.

Возможны 2 варианта обозначения того, что мы описываем переменную

Var - описанные так переменные будут распространяться на все функции и будут постоянно висеть в памяти. Мы сможем использовать их и в других наших функциях

let - это локальные переменные, которые будут действовать только внутри нашей функции (либо внутри блока), после завершения выполнения функции эти переменные будут удалены.

Пример:

let ss = SpreadsheetApp.getActiveSpreadsheet();

здесь переменной ss мы присваиваем значение равное нашей открытой книги

Для простоты дальнейшей рабаты давайте уясним несколько полезных аментов.

Функцию всегда начинаем писать следующим образом

function myfunction()

{

let ss = SpreadsheetApp.getActiveSpreadsheet();

let aktSheet = ss.getSheetByName('Лист1');

}

Давайте разберем, что я вставил в эту заготовку

function myfunction() - это начало моей функции, соответственно с именем функции. Никакие аргументы не запрашиваем и не передаем, в скобках, соответственно, ничего нет

Далее в фигурных скобках идет тело программы.

В заготовке есть описание двух переменных.

let ss = SpreadsheetApp.getActiveSpreadsheet(); - это мы локально (только для этой функции) описываем переменную ss, одновременно присваиваем ей значение, равное значению (имени) нашей рабочей книги (нашего файла гугл таблиц).

Посмотрите, как формируется команда присваивания - методом последовательного перебора (об более общего к частному). Сначала идет обращение ко всему "справочнику" функций гугл таблицы (SpreadsheetApp), а затем, через точку, уточняем, что именно нам нужно - "Получить значение активной книги (getActiveSpreadsheet()).

Запомните: get-получить, set-назначить

let aktSheet = ss.getSheetByName('Лист1'); - локально описываем переменную aktSheet, которой присваиваем значение листа, на котором будем выполнять дальнейшие действия. В моем примере это "Лист1". Можно назначить лист принудительно, как в моем примере, а можно спросить у кампьютера, с какого листа была запущена команда и уже работать именно на нем. В этом случае вместо ss.getSheetByName('Лист1'), используем ss.getActiveSheet()

Давайте разберем пример:

У нас есть таблица:

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-4

В ячейках А2 и В2 есть числа. Давайте сложим эти числа и выведем их сумму в ячейку С2

Начнем писать нашу функцию

function myfunction()

{

let ss = SpreadsheetApp.getActiveSpreadsheet();

let aktSheet = ss.getSheetByName('Лист1');

}

Это наша стандартная заготовка.

Далее нам нужно создать две переменные и назначить им значение из ячеек А2 и В2 соответственно. Назовем их per1 и per2

Итак:

let per1 = aktSheet.getRange("A2").getValue();

Дословно это можно интерпретировать так - из нужного листа aktSheet (а эта переменная у нас связана с Листом1) получить значения (getValue) из диапазона А2 (getRange) и присвоить их переменной per1

Для второй переменной получим

let per2 = aktSheet.getRange("B2").getValue();

Обратите внимание, что после каждой команды идет знак ";" (точка с запятой). Это очень важно, обратите на это внимание.

Далее мы должны произвести вычисления и соответственно присвоить их третьей переменной - per3

let per3 = per1+per2;

Теперь полученное значение per3 нам нужно отправить в ячейку С2

aktSheet.getRange("C2").setValue(per3);

Дословно: На рабочем листе (aktSheet - "Лист1"), для диапазона С2, присвоить значение per3 (setValue)

В итоге наша программа примет вид:

function myFunction() {

let ss = SpreadsheetApp.getActiveSpreadsheet();

let aktSheet = ss.getSheetByName('Лист1');

let per1 = aktSheet.getRange("A2").getValue();

let per2 = aktSheet.getRange("B2").getValue();

let per3 = per1+per2;

aktSheet.getRange("C2").setValue(per3);

}

Теперь можно сохранить наши изменения и запустить выполнение функции

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-5

При первом запуске программы может "выскочить" предупреждение системы безопасности. Нужно разрешить выполнение программы

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-6
Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-7
Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-8
Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-9
Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-10

После этого можно проверять выполнение прораммы.

Гугл таблицы позволяют автоматизировать большое количество процессов. Можно запрограммировать достаточно большое количество процессов.-11

Поздравляю!!!

Сегодня вы создали свою первую программу в Гугл таблицах.

Подписывайтесь на канал, ставьте лайки и пишите комментарии.

Все остальные уроки по Гугл таблицам Вы можете посмотреть, посетив страницу с содержанием:

Без рекламы и только про Гугл таблицы можно почитать здесь: