概要
この記事は、Google App Script(GAS) についての備忘録です。
特有のルール・知識
-
コンテナバインドスクリプト
: Googleアプリケーションと結びついたGAS -
スタンドアロンスクリプト
: 単体で動くGAS - Googleアプリケーションに対する操作では承認が必要
- Spreadsheetは、 Spreadsheetオブジェクト > Sheetオブジェクト > Rangeオブジェクト という包含関係がある
- 無限ループは6分で停止する
- scriptは同一プロジェクト内で複数ファイルに分割でき、あるファイルで記述した変数はimport, exportせずに使用できる
ショートカット
実行
Command or Control + R
ログ閲覧
Command or Control + Enter
Javascript と似ている文法
for文
for(初期化式; 条件式; 増減式) {
// 繰り返す処理
}
for ループの抜け方
break;
if文
if(条件式) {
// 条件式がtrueだったときの処理
}
while文
while(条件式) {
//繰り返したい処理
}
GAS共通の記述
ログ出力
Logger.log(data)
Logger.log('%s %s', data1, data2); // 変数を%sに代入できる
Spreadsheetの記述
アクティブなスプレッドシートの取得
SpreadsheetApp.getActiveSpreadsheet()
スプレッドシート名を取得
Spreadsheetオブジェクト.getName()
シート名を指定して取得
Spreadsheetオブジェクト.getSheetByName(シート名)
アクティブなシートを一つ取得
SpreadsheetApp.getActiveSheet()
※ 複数シートが存在する場合、一意にシートを決められない可能性がある
アドレスを指定して、セル範囲を取得する
Sheetオブジェクト.getRange(アドレス)
Rangeオブジェクトから単体セルの値を取得する
Rangeオブジェクト.getValue()
Rangeオブジェクトから複数セルの値を取得する
Rangeオブジェクト.getValues()
行数・列数を指定したセル範囲の取得
Sheetオブジェクト.getRange(行番号, 列番号, 行数, 列数)
※行数、列数は指定しない場合1になる
シートの最終行を取得する
Sheetオブジェクト.getLastRow()
※ lastRow は値が存在する最終行
セルに値を代入
Rangeオブジェクト.setValue(値)
Rangeオブジェクトのアドレスを取得する
Rangeオブジェクト.getA1Notation()
Rangeオブジェクトの値削除 & 初期化
Rangeオブジェクト.clear()
Rangeオブジェクトの値削除
Rangeオブジェクト.clearContent()
※書式や背景などは削除されない