GAS とは?
Google Apps Script
Google スプレッドシート、 Google ドキュメント、Google フォームといった Google のサービスでもっと楽したいときに使えるスクリプト。ほぼ JavaScript。Google アカウントさえあれば誰でも使える。
この記事は Google スプレッドシートの GAS コーディングで使うメソッド等をメモしたもので、0 からのハウツーではないです。
GAS コーディング メモ(スプレッドシート編)
ここでは基本、以下の変数名を使っています。
複数使う場合は通し番号付けています。
変数名 | 内容 |
---|---|
spread_sheet | スプレッドシートそのもの(ファイル)のオブジェクト |
sheet | シート(タブで分かれてるやつ)のオブジェクト |
cell | 単一のセルのオブジェクト |
range | セルの範囲のオブジェクト |
GAS のスプレッドシート操作は、基本これらのオブジェクトそれぞれに用意されているメソッドを使う。
スプレッドシート(ファイル)のオブジェクトを作成
var spread_sheet1 = SpreadsheetApp.getActiveSpreadsheet(); // 今開いているスプレッドシートを参照する場合はこれでOK
var spread_sheet2 = SpreadsheetApp.openById('スプレッドシートのID'); // スプレッドシートを指定して参照する場合はこっち
スプレッドシートの ID は、スプレッドシートの URL の↓
https://docs.google.com/spreadsheets/d/ここの長ったらしい英数文字列/edit#gid=0
シートのオブジェクトを作成
var sheet1 = spread_sheet.getSheetByName('シート1'); // シート名を指定して参照する場合
var sheet2 = SpreadsheetApp.getActiveSheet(); // 今開いているスプレッドシートの今アクティブになっているシートを参照する場合
単一のセルのオブジェクトを作成
var cell1 = sheet.getRange('A3'); // セル A3 のオブジェクトを作成
var cell2 = sheet.getRange(1, 1); // セル(1, 1) = A1 のオブジェクトを作成
行列を数字で指定する場合、数えは 0 ではなく 1 から始まる。
セルの範囲のオブジェクトを作成
var range2 = sheet.getRange('A1:B2'); // A1~B2 の 4 セルが対象
var range1 = sheet.getRange(1, 1, 2, 2); // こういう書き方もできる(↑と同じ A1~B2 の意味)
行列を数字で指定する場合、数えは 0 ではなく 1 から始まる。
セルの値を取得
var value = cell.getValue();
値の型まで取得する。
例えば、日付は「4/20」が入っていても、文字列の "4/20" ではなく、"Fri Apr 10 00:00:00 GMT+09:00 2020"を取得する。
セルの値を見たまま(文字列として)取得
var value = cell.getDisplayValue();
スプレッドシート上の見たままの文字列を取得する。
例えば、日付「4/20」のセルの値を取得すると、そのまま "4/20"を取得できる。
セルの範囲の値を配列として取得
var value = range.getValues();
スプレッドシートに対する処理は基本重い。
例えば、スプレッドシートの値を全て取得したい場合、for ループでそれぞれのセルから順番に値を取得することも可能だが、基本は getValues()
で一度に取得しておいたほうがよい。
セルの範囲の値を見たまま(文字列として)取得
var value = range.getDisplayValues();
スプレッドシート上の見たままの文字列を取得する。
スプレッドシートの最後の行番号を取得
var last_row = sheet.getLastRow();
スプレッドシートの最後の列番号を取得
var last_column = sheet.getLastColumn();
セルの初期化
cell.clear();
セルへの書き込み
cell.setValue('書き込む値');
セルのテキスト揃えを指定
cell.setHorizontalAlignment('left'); // 左揃え
cell.setHorizontalAlignment('center'); // 中央揃え
cell.setHorizontalAlignment('right'); // 右揃え
セルのテキストの装飾(線)
cell.setFontLine('underline'); // 下線
cell.setFontLine('line-through'); // 打ち消し線
cell.setFontLine('none'); // 線なし
セルの背景色を指定
cell.setBackground('#ffffff');
cell.setBackground('transparent'); // 背景色透明