Abstract
GAS備忘録. 主にGoogleSpreadSheetについて。
内容
基本
- その0. スタンドアロン型 or コンテナバインド型を選ぶ
- スタンドアロン型
- Googleサービス全般と連携した独立のスクリプトを作りたい場合
- 複数のスプレッドシートを活用したい場合もこれ
- Googleドライブから新規作成
- コンテナバインド型
- スプレッドシート操作中にちょっとした自動化したいだけの場合
- Google Sheetsのスクリプトエディタから作成
- スタンドアロン型
- その1.基本の4オブジェクト
- SpreadsheetAppオブジェクト
- スプレッドシートアプリの最上位オブジェクト
- SpreadSheetオブジェクト
- 1個のファイル全体
- Sheetオブジェクト
- 左下の「シート1」「シート2」みたいな一個一個のシート
- Rangeオブジェクト
- セルの範囲
- SpreadsheetAppオブジェクト
- その2.スプレッドシートの取得法の3種類
- アクティブなスプレッドシートを取得
- URLを指定して取得
- IDを指定して取得
- その3. シートの取得方法
- 参考:
- コンテナバインドかつシートの数が一つだけの場合
- getActiveSheet
- それ以外
- getSheetByName
// コンテナバインドスクリプトであれば、これで取得できる
var spreadsheet_1 = SpreadsheetApp.getActiveSpreadsheet();
// URLを使って取得できる
var url = 'https://docs.google.com/spreadsheets/d/xxxxxx/edit#gid=0';
var spreadsheet_2 = SpreadsheetApp.openByUrl(url);
// IDを使って取得できる
var id = 'xxxxxx';
var spreadsheet_3 = SpreadsheetApp.openByID(id);
- その3. メソッド
- 値取得
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
// セルのデータを取得するときは getValue() を用いる
Logger.log(sheet.getRange('A2').getValue()); // Tom
// 指定した範囲のデータを取得するときは getValues() を使用する
Logger.log(sheet.getRange('A3:C4').getValues()); // [[John, male, 28.0], [Emma, female, 31.0]]
}
- 値入力
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
// セルにデータを入力するときは setValue() を用いる
sheet.getRange('A5').setValue('Anthony');
Logger.log(sheet.getRange('A5').getValue()); // Anthony
// 指定した範囲にデータを入力するときは setValues() を使用する
sheet.getRange('B5:C5').setValues([['male', 34]]);
Logger.log(sheet.getRange('A5:C5').getValues()); // [[Anthony, male, 34.0]]
}
- 行の追加
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
// データを追加する
sheet.appendRow(['Luna', 'female', 30]);
// 式も代入できる
sheet.appendRow([null, null, '=AVERAGE(C2:C6)']);
}
参考文献
https://note.com/skipla/n/n0803937a0887
https://michikusa.biz/introduction-to-gas-2/
https://qiita.com/zumi0/items/82ebe9797811c8d670ac#%E3%82%B9%E3%83%97%E3%83%AC%E3%83%83%E3%83%89%E3%82%B7%E3%83%BC%E3%83%88
https://qiita.com/km42428/items/845975277e635e70adfc