Google Apps Script (GAS)
Google Apps Script (GAS) を使って、JavaScriptからスプレッドシートを操作する方法を入門向けに紹介します。
GoogleスプレッドシートからGASを編集する
GoogleスプレッドシートからGoogle Apps Script (GAS)を編集するには、「拡張機能」メニューの「Apps Script」をクリックしてスクリプトエディタを起動する。
「無題のプロジェクト」のコード.js が編集できるようになり、最初は次のコードになっている。
function myFunction() {
}
ログを出力する
Google Apps Script (GAS) からログを出力するには、Loggerオブジェクトのlogメソッドを使う。
Logger.log('message');
書式を指定してログを出力することもできる。
Logger.log('message %s', 1);
Googleドライブのフォルダを取得する
Google App Script (GAS) からGoogleドライブのフォルダを取得するには、DriveApp.getFolderById
メソッドを使う。
DriveApp.getFolderById(folderId)
GoogleドライブのフォルダIDは、Googleドライブでフォルダを開いたときのURLから知ることができる。
https://drive.google.com/drive/folders/folderId
GASからGoogleドライブのフォルダを取得する例を以下に示す。
const folder = DriveApp.getFolderById("abcdefghijklmnopqrstubwxyz012345");
Googleドライブにファイルを保存する
Google App Script (GAS) から Google ドライブへファイルを保存するには、DriveApp.createFile
メソッドを使う。
DriveApp.createFile(data)
Google スプレッドシートを PDF に変換して、Google ドライブへファイルを保存する例を以下に示す。
let ss = SpreadsheetApp.getActiveSpreadsheet();
let pdf = ss.getAs("application/pdf");
pdf.setName("example");
DriveApp.createFile(pdf);
GmailApp.sendEmail()
Google App Script (GAS) から Gmail でメールを送信するには、GmailApp.sendEmail()
メソッドを使用する。
sendEmail(mailto, subject, body)
以下に示す引数を GmailApp.sendEmail()
メソッドに指定する。
- mailto
- 送信先のメールアドレス
- subject
- メールのタイトル
- body
- メールの本文
GASから Gmail でメールを送信する例を以下に示す。
const mailto = "example@gmail.com";
const subject = "Hello";
const body = "Hello, everyone.";
GmailApp.sendEmail(mailto, subject, body);
getSheetByName()
Google Apps Script (GAS) からシートのオブジェクトを取得するには、次の方法がある。
- アクティブなシートを取得する
- シート名を指定してシートを取得する
シート名を指定してシートを取得するには、スプレッドシートオブジェクトのgetSheetByNameメソッドを使う。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');
getAs()
スプレッドシートを特定のデータ形式へ変換するには、getAs
メソッドを使う。
SpreadSheet.getAs(contentType)
以下に示す引数を getAs
メソッドに指定する。
- contentType
- MIMEタイプ
Google スプレッドシートを PDF に変換して、ファイルを Google ドライブへ保存する例を以下に示す。
let ss = SpreadsheetApp.getActiveSpreadsheet();
let pdf = ss.getAs("application/pdf");
pdf.setName("example");
DriveApp.createFile(pdf);
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);
グラフのコレクションを取得する
Google スプレッドシート等に埋め込まれたグラフ(チャート)のコレクションを Google Apps Script (GAS) から取得するには、getCharts メソッドを使う。
sheet.getCharts()
Google スプレッドシート等に埋め込まれたグラフ(チャート)のコレクションを取得する例を以下に示す。
let sheets = SpreadsheetApp.getActiveSpreadsheet();
let sheet = sheets.getSheetByName('シート1');
let charts = sheet.getCharts();
取得したグラフのコレクションは配列として参照できる。
let chart = charts[0];
Utilities.formatDate()
formatDate(date, timeZone, format)
以下に示す引数を formatDate メソッドに指定する。
- date
- 文字列に変換するDate オブジェクト
- timeZone
- タイムゾーン
- format
- Java の SimpleDateFormat に準じたフォーマット指定文字列
現在の日付と時刻をログへ出力する例を以下に示す。
var date = new Date();
Logger.log("JST " + Utilities.formatDate(date, "JST", "yyyy/MM/dd (E) HH:mm:ss Z"));
Logger.log("GMT " + Utilities.formatDate(date, "GMT", "yyyy/MM/dd (E) HH:mm:ss Z"));
Logger.log("PST " + Utilities.formatDate(date, "PST", "yyyy/MM/dd (E) HH:mm:ss Z"));
SlideApp.create()
Google スライドを新規作成するには、SlideApp.create()
メソッドを使う。
create(name)
Google スライドを新規作成する例を以下に示す。
const slides = SlidesApp.create("temp");