Google Apps Script (GAS) を使って、JavaScriptからスプレッドシートを操作する方法を入門向けに紹介します。
sendEmail()
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 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 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);
Google App Script (GAS) から Gmail でメールを送信するには、GmailApp.sendEmail()
メソッドを使用する。
sendEmail(mailto, subject, body)
以下に示す引数を GmailApp.sendEmail()
メソッドに指定する。
GASから Gmail でメールを送信する例を以下に示す。
const mailto = "example@gmail.com";
const subject = "Hello";
const body = "Hello, everyone.";
GmailApp.sendEmail(mailto, subject, body);
Google Apps Script (GAS) からシートのオブジェクトを取得するには、次の方法がある。
シート名を指定してシートを取得するには、スプレッドシートオブジェクトのgetSheetByNameメソッドを使う。
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName('シート1');
スプレッドシートを特定のデータ形式へ変換するには、getAs
メソッドを使う。
SpreadSheet.getAs(contentType)
以下に示す引数を getAs
メソッドに指定する。
Google スプレッドシートを PDF に変換して、ファイルを Google ドライブへ保存する例を以下に示す。
let ss = SpreadsheetApp.getActiveSpreadsheet();
let pdf = ss.getAs("application/pdf");
pdf.setName("example");
DriveApp.createFile(pdf);
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);
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];
チャート(グラフ)を画像ファイルとしてGoogleドライブに保存する Google Apps Script (GAS) スクリプトを以下に示す。
function saveChartAsImage() {
// グラフを取得する(グラフの名前やIDで指定)
var chart = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getCharts()[0];
// 画像として保存する
var blob = chart.getAs('image/png');
var folder = DriveApp.getFolderById('1oL-Oaz3LWSuPOw7VC1tDlbTfvTNdOj9e'); // 保存先のフォルダIDを指定
folder.createFile(blob);
}
formatDate(date, timeZone, format)
以下に示す引数を formatDate メソッドに指定する。
現在の日付と時刻をログへ出力する例を以下に示す。
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"));
Google スライドを新規作成するには、SlideApp.create()
メソッドを使う。
create(name)
Google スライドを新規作成する例を以下に示す。
const slides = SlidesApp.create("temp");