Google Apps Scriptは、Google が提供するローコードプラットフォームです。
厳密には違うのですが、プログラミング言語といっても差し支えないと思います。
(以降、Google Apps Script を GAS と呼称します。)
GAS を使うことで、Gmail や Googleカレンダー、Google スプレッドシートなどの
Google が提供するアプリケーションをプログラミングによって操作することができるようになります。
各アプリケーション単体の動作はもちろん、アプリケーション同士を連携させて動作させることもできます。
また、HTMLやCSS、JavaScriptでWebアプリケーションを作成し、公開することもできます。
一方で、GAS独自のルールがあるため、そのルールを把握した上でコーディングをする必要があります。
この入門編ではGASを学ぶ上で土台となる基礎知識を身につけていきます。
GASはJavaScriptというプログラミング言語がベースになっています。
JavaScriptはブラウザ上で動作する標準のスクリプト言語として使われており、
さらにサーバーの処理を行う言語としても活用されています。
スクリプト言語は簡易にコーディングと実行ができることが特徴です。
そのため、プログラミングが初めてという方でも比較的容易に習得することできます!
GASの特徴は、コーディングをする場所もプログラムが実行される場所も全てGoogleのクラウドサーバー上にあります。
例えば、Excel VBA の場合はコーディングやプログラムの実行はPC内で行われます。
一方、GASはブラウザ上でコーディングを行い、プログラムの実行はクラウドサーバー上で行われます。
GASの最大の利点は 開発環境の整備が不要 であることです。
スクリプトが実行されるサーバーも、コーディングを行うエディタもすべてGoogleが用意してくれています。
また、スクリプトはGoogleのクラウドサーバー上で動作するため、PCやブラウザが起動していなくてもスクリプトを実行することができます。
トリガー という機能を使うことで、時間を指定して特定の時間にスクリプトを実行させることができます。
GASで開発をするのに必要なものは下記の3つだけです。
他のプログラミング言語と比べても敷居はとても低く、
GASの門戸は常に開かれています。
Google Apps はGoogle が提供しているアプリケーションを意味していますが、GASはGoogleが提供しているすべてのアプリケーションを操作できるわけではありません。
どのアプリケーションを操作できるかは、後述の「リファレンスについて」で確認していきましょう。
皆さんはGoogleアカウントを無料で作成してサービスを利用することができます。
その一方で、これらのサービスが企業や組織向けに提供されている有償版のサービスもあります。
これは G Suite と呼ばれており、企業や組織向けのサービスとして利用することができます。
G Suite のプランにはBasic/Businessというプランが用意されています。
無料アカウントと G Suite の各プランの違いは下記の通りとなっております。
項目 | 無料アカウント | G Suite for Basic | G Suite for Business |
---|---|---|---|
料金 | 無料 | 680円/月額 | 1,360円/月額 |
メールアドレス | ドメイン名はgmail.comのみ | 独自ドメインを設定できる | 独自ドメインを設定できる |
サポート | なし | 24時間365日サポート | 24時間365日サポート |
管理コンソール | なし | ユーザー管理、端末管理、セキュリティ設定が可能 | ユーザー管理、より高度な端末管理とセキュリティ設定が可能 |
クラウドストレージ容量 | 15GB | 30GB | 無制限 |
無料のアカウントでも、GASの基本的な機能を利用することは可能です。
しかし、GASの実行の際に一部制限があり、G Suite の方がその制限が緩くなっています。
その一例は下記の通りです。
公式ガイド
項目 | 無料アカウント | G Suite for Basic | G Suite for Business |
---|---|---|---|
スクリプト実行時間 | 6分/実行 | 6分/実行 | 30分/実行 |
カスタム関数実行時間 | 30秒/実行 | 30秒/実行 | 30秒/実行 |
トリガーの総実行時間 | 90分/日 | 3時間/日 | 6時間/日 |
GASで多くのアプリケーションを操作することができますが、
この機能は「サービス」と呼ばれており、このサービスは3つのグループに分けられています。
グループ | 概要 | 提供されるサービス例 | サービスの利用方法 |
---|---|---|---|
G Suite Services | G Suite に含まれるアプリケーションを操作するサービス群 | Gmail、Calendar、スプレッドシートなど | デフォルトで利用可能 |
Script Services | ユーティリティサービス群 | Cache、HTML、JDBCなど | デフォルトで利用可能 |
Advanced Google Services | G Suite Services よりも高度な操作を行うことができるサービス群 | BigQuery、AdminSDKなど | デフォルトで利用可能 |
主に G Suite で提供されている各アプリケーションを操作するサービスが提供されています。
G Suite のすべてのサービスを操作できるわけではないのですが、
これらのサービスを操作することで業務効率化を図ることができるアプリケーションやツールを作ることができます。
Script Servicesでは、GAS 全般で横断的に利用するユーティリティとして機能するサービスが提供されています。
例えば、ログを出力したり、ダイアログを表示したりなど便利な機能が揃っています。
GASには G Suite Services に含まれないアプリケーションや、より高度な操作を可能にするサービスが提供されています。
これらは 拡張サービス(Advanced Google Services)と呼ばれていて、
G Suite Servicesでは操作ができないBigQueryやAdminSDKを操作することができ、
G Suite Servicesで用意されているGmailやDriveなどのアプリケーションに対して、より高度な処理を行うことができます。
デフォルトでは無効になっているため、利用したいサービスごとに有効にする必要があります。
先述した通り、GASのベースはJavaScriptではあるものの、JavaScriptのすべての機能を利用できるわけではありません。
GASで利用できる JavaScript は、基本構文、制御構文、演算子、関数、組み込みオブジェクトなどの基本部分であるECMAScript(エクマスクリプト)のみです。
また、ECMAScriptは高頻度でバージョンアップを繰り返しているのですが、
その更新にGASは対応しきれていないため、ECMAScriptであっても記述できない構文などもあります。
また、JavaScriptを大きく分けると画面の操作を行う フロントエンド と 外部サービスへの連携やデータベースの処理などを行う サーバーサイド に分けられます。
GASはサーバーサイドに分類するため、フロントエンドのJavaScriptの機能を利用することができません。
例えば、下記のような画面にアラートを表示するという初歩的なコードすら実行することができません。
alert('Hello World!')
先述した通り、GASはGoogleのサーバー上で動作するため、仮にあるユーザーが極端にサーバーに負荷がかかる処理を行うと、GAS全体に影響を及ぼす恐れがあります。
このような状況を避けるためにGASにはいくつかの機能に対して制限が設けられています。
詳細は下記リンク先の公式ガイドをご参照ください。
特に気をつけるべきは スクリプトの実行時間 で、無料アカウントや G Suite for Basic の場合は6分、
G Suite for Business の場合は30分で処理が強制終了してしまいます。
そのため、GASで開発を行う際は扱うデータ量と処理速度に注意をする必要があります。
具体的にGASがどのようなサービスを提供しているかは下記リンク先のリファレンスで確認することができます。
どのサービスを利用すればよいか迷ったときは、このリファレンスを参考に吟味するようにしましょう。
また、Google社はGASを不定期にアップデートしているため、GASで開発する際は利用するサービスを必ずリファレンスで確認するようにしましょう。