Google Apps Script (GAS)

Google Apps Script (GAS) を使って、JavaScriptからスプレッドシートを操作する方法を入門向けに紹介します。

GoogleスプレッドシートからGASを編集する

GoogleスプレッドシートからGoogle Apps Script (GAS)を編集するには、「ツール」メニューの「スクリプトエディタ」をクリックしてスクリプトエディタを起動する。

「無題のプロジェクト」のコード.js が編集できるようになり、最初は次のコードになっている。

function myFunction() {

}

log()

Google Apps Script (GAS) からログを出力するには、Loggerオブジェクトのlogメソッドを使う。

Logger.log('message');

書式を指定してログを出力することもできる。

Logger.log('message %s', 1);

GmailApp.sendEmail()

Gmail でメールを送信するには、GmailApp.sendEmail() を使用する。

const mailto = "example@gmail.com";
const subject = "Hello";
const body = "Hello, everyone.";
GmailApp.sendEmail(mailto, subject, body);

SpreadsheetApp.getActiveSheet()

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

getSheetByName()

Google Apps Script (GAS) からシートのオブジェクトを取得するには、次の方法がある。

シート名を指定してシートを取得するには、スプレッドシートオブジェクトのgetSheetByNameメソッドを使う。

var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');

getRange()

Google Apps Script (GAS) でセルを取得するには、次の方法がある。

「A1」や「B2」のようなアドレスを指定してセルを取得するには、シートオブジェクトのgetRangeメソッドを使う。

var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange('A1');

行番号と列番号を指定してセルを取得するには、シートオブジェクトのgetRangeメソッドを使う。数値で指定できるので、ループ処理に便利である。

sheet.getRange(line, column);
line
1から始まる行番号
column
1から始まる列番号
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(1, 2);

setValue()

Googleスプレッドシートのセルに値を入力するには、RangeオブジェクトのsetValueメソッドを使う。

var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('A1').setValue(1);