Edited at

『Google Apps Script 完全入門』を買って基礎入門①

今回はタイトル通り、

GASの記述ルールやお作法、変数、定数、型、配列や演算子など様々な基本を複数回に分けて書いていきます!

以下様々なGASの記事を紹介してます!

https://bzbot.work/


紹介記事

今回紹介している記事は以下です!

https://bzbot.work/2019/02/25/gas-superbeginner/


1.GASの超基本

GASを利用するにあたり、最低限覚えておいたほうがいい使用上のルールがあります。


スクリプト実行時間

無料のGoogleアカウントの実行時間は6分 / 実行で、スクリプトの実行の際にこの制限を越えると、スクリプトはエラーとなって終了しちゃいます。

なので扱うデータ量が多かったり、処理速度を意識しないといけません!(笑)

ただ、6分の壁を越える処理を記述する方法もあるようなので、今後やってみたいなぁーと思ってます。


記述のルール

1.英数字、記号は全て半角で入力

2.アルファベットの大文字と小文字は区別される
3.初めて実行するスクリプトは都度『承認』が必要
4.ステートメント *1 の末尾にはセミコロン(;)を付ける
5.識別子 *2 は先頭文字は数字、一部アンダースコア、ドル記号($)をのぞいて記号は使えない
6.予約語 *3 は使えない
7.変数と関数名にはキャメル記法 *4、定数名にはスネーク記法 *5を使用

*1 ステートメント…処理の最小単位の事
セミコロンがなくても自動でステートメントを判断して処理されるけど、絶対ではないので非推奨です!
*2 識別子…変数、定数、関数などの事
*3 予約語…すでに特別な意味を持つ単語として定められているものの事(var や function など)
*4 キャメル記法…単語を連結した時に、2つ目以降の単語の頭文字を大文字にする記法(maxRow など)
*5 スネーク記法…単語をアンダースコア(_)で連結しつつ全てを大文字にする記法(TAX_RATE など)


2.記述準備


エディタ表示方法

『ツール』の中にある『スクリプト エディタ』を選択します。

image.png


コードの記述場所

image.png


3.変数と定数


変数

スクリプト上で実行する為に必要な数値、文字列、オブジェクトなどのデータを格納する『データの箱』のことです。変数を使うことで、データを一時的に保管したり、データをわかりやすい名称で取り扱うことができます。

例えば以下が変数です。


GAS

function myFunction() {

/*
*変数の値は基本上書きが可能
*/

//numという変数に『12345』という数値が入ってます
var num = 12345;
Logger.log(num);

//strという変数に『Hello ビジボット』という文字が入ってます
var str = 'Hello ビジボット';
Logger.log(str);

//numに1という値を上書きする
num = 1;
Logger.log(num);
}


ログ結果はこんな感じ。

[19-02-25 01:47:46:598 JST] 12345.0

[19-02-25 01:47:46:598 JST] Hello ビジボット
[19-02-25 01:47:46:599 JST] 1.0


定数

変数は上書きが可能でしたが、上書きによる変更をさせたくない時があります。(例えば消費税とか)

そのような場合には『定数』を使います。定数は変数同様、名前を付けられる『データの箱』として使用できますが、一度値を格納したら値の上書きをすることができません。

例えば以下が定数です。


GAS

function myFunction() {

/*
*定数の値は上書きが不可能
*/

//TAXという定数に『1.08』という数値が入ってます
const TAX = 1.08;
Logger.log(TAX);

//SITE_NAMEという定数に『ビジボット』という文字が入ってます
const SITE_NAME = 'ビジボット';
Logger.log(SITE_NAME);

//TAXに1.10という値を上書きする記述をしてみる...
TAX = 1.10;
Logger.log(TAX);
}


ログはこんな感じ。

[19-02-25 01:54:22:985 JST] 1.08

[19-02-25 01:54:22:986 JST] ビジボット
[19-02-25 01:54:22:986 JST] 1.08

他にも結果は以下サイトで載せてます!

https://bzbot.work