Google Apps Script (GAS) を使って、JavaScriptからスプレッドシートを操作する方法を入門向けに紹介します。
GoogleスプレッドシートからGoogle Apps Script (GAS)を編集するには、「ツール」メニューの「スクリプトエディタ」をクリックしてスクリプトエディタを起動する。
「無題のプロジェクト」のコード.js が編集できるようになり、最初は次のコードになっている。
function myFunction() {
}
Google Apps Script (GAS) からログを出力するには、Loggerオブジェクトのlogメソッドを使う。
Logger.log('message');
書式を指定してログを出力することもできる。
Logger.log('message %s', 1);
Gmail でメールを送信するには、GmailApp.sendEmail() を使用する。
const mailto = "example@gmail.com";
const subject = "Hello";
const body = "Hello, everyone.";
GmailApp.sendEmail(mailto, subject, body);
Google Apps Script (GAS) からシートのオブジェクトを取得するには、次の方法がある。
現在アクティブなシートを取得するには、SpreadsheetAppオブジェクトのgetActiveSheetメソッドを使う。
var sheet = SpreadsheetApp.getActiveSheet();
スプレッドシートに連携されたコンテナバインド型の Google Apps Script (GAS) からスプレッドシートの読み込みを行うには、SpreadsheetAppオブジェクトのgetActiveSpreadsheetメソッドを使う。
let as = SpreadsheetApp.getActiveSpreadsheet();
コンテナバインド型のGASは特定のスプレッドシートと連携しているため、スプレッドシートを特定する識別子を指定する必要はない。
スプレッドシートに連携されていないスタンドアロン型のGoogle Apps Scriptでは、getActiveSpreadsheetメソッドを使えない。
スタンドアロン型のGASの場合、SpreadsheetAppオブジェクトのopenByUrlメソッドを使う。読み込むスプレッドシートを特定するために、スプレッドシートのURLを引数に指定する。
let s = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1akgVu0a5k8BiYomfWjOgbH3LmbMjJZ3sbzdL0zajdBI/edit#gid=6844086815");
または、SpreadsheetAppオブジェクトのopenByIdメソッドを使う。読み込むスプレッドシートを特定するために、スプレッドシートのURLに含まれるIDを引数に指定する。
let s = SpreadsheetApp.openById("1akgVu0a5k8BiYomfWjOgbH3LmbMjJZ3sbzdL0zajdBI");
メソッド | 引数 | コンテナバインド型 | スタンドアロン型 |
---|---|---|---|
getActiveSpreadsheet | なし | 可 | 不可 |
openById | id | 可 | 可 |
openByUrl | url | 可 | 可 |
Google Apps Script (GAS) からシートのオブジェクトを取得するには、次の方法がある。
シート名を指定してシートを取得するには、スプレッドシートオブジェクトのgetSheetByNameメソッドを使う。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');
Google Apps Script (GAS) でセルを取得するには、次の方法がある。
「A1」や「B2」のようなアドレスを指定してセルを取得するには、シートオブジェクトのgetRangeメソッドを使う。
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange('A1');
行番号と列番号を指定してセルを取得するには、シートオブジェクトのgetRangeメソッドを使う。数値で指定できるので、ループ処理に便利である。
sheet.getRange(line, column);
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(1, 2);
Googleスプレッドシートのセルに値を入力するには、RangeオブジェクトのsetValueメソッドを使う。
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setValue(1);