Найти тему
Сделано!

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

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

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

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

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

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