Google Apps Script の使い方
Google Apps Script (GAS)は、Googleスプレッドシートやフォームなどのサービスと連携し、
作業の自動化や簡易アプリケーションの構築ができるスクリプト実行環境です。
現在はV8ランタイムに対応(2020年3月17日)していて、モダンなJavaScript環境のひとつとして使うことができます。
ブラウザだけで開発・実行できるのが大きな特徴です。
一方で、GAS特有の制約として、モジュール分割(ESModule)やimport/export文がそのままでは利用できません。
そのため、コード量が増えてくるにつれて構造化が難しくなり、
保守性の低下といった課題に直面しやすくなります。
このページでは、GASエディターを直接編集するのではなく、
ローカルで開発・ビルドしてからGASにデプロイするという開発スタイルを紹介します。
具体的には、
TypeScriptで型安全にコードを記述し、
rollupでバンドルし、
claspでGAS環境にデプロイします。
注釈
GASの情報を検索すると、新しい書き方と古い書き方が混在したコード片が多く見つかります。 とくにV8ランタイム以前の記述や、現在では推奨されない書き方がそのまま紹介されているケースもあります。 そのため、単にサンプルコードを流用するだけでは、動かないこともたくさんあります。
このページでは、ウェブに落ちているコードを、どのように読み替えるかについても整理することを目指します。
環境構築したい
GAS操作したい
- 組み込みオブジェクトしたい
- 変数したい(
const/let/var) - グローバル変数したい(
globalThis) - 関数したい(
function) - クラスしたい
- 名前空間したい
- ログしたい(
Logger) - 日付したい(
Date) - フィルターしたい(
filter) - サービスIDしたい
- ドライブしたい(
DriveApp) - スプレッドシートしたい(
SpreadsheetApp) - ドキュメントしたい(
DocumentApp) - フォームしたい(
FormApp) - メールしたい(
MailApp/GmailApp) - グループ管理したい(
GroupsApp) - カレンダーしたい(
CalendarApp) - HTTPリクエストしたい(
UrlFetchApp) - GETリクエストしたい(
doGet) - トリガーしたい(
ScriptApp.newTrigger) - プロパティしたい(
Properties Service) - 使用制限
- ECMAScriptのバージョン
- エクスポートしたい(
module.exports) - イテレーターしたい(
GoogleAppsScript.Base.Iterator)