Google Apps Script(GAS)とは何か
Google Apps Script(グーグル アップス スクリプト。以下、GAS(ガス)) は、Google Workspace上のアプリケーション(GmailやGoogleスプレッドシート、Googleクラスルーム等)を素早く簡単に連携/拡張させることができるローコードプラットフォームです。Google Apps scriptを使うことで、Google Workspaceや他の外部サービス(SlackやChatwork、freee等)との連携が可能になり、ビジネスや教育現場での業務効率を最適化することができます。
Google Apps Scriptでできること
GASでできることは、様々な課題やシーンに合わせて想像次第で広げることができます。以下の内容は実現できることの一部です。(内容的に、多少重なっている部分もあります。)
①Google Apps Scriptで自動化アプリケーションを開発する
日常的なルーチンワークや時間のかかる単純作業の効率化をしたいのであれば、GASは強力なソリューションの一つになります。例えば、Gmailの一括送信であったり、Googleドライブのフォルダを一括でコピーしたり、Googleスプレッドシートで請求書を一括作成したりといったことができます。
一定の時間や条件でトリガーを発生させることもできます。ですので、毎日定期的にGoogle Analyticsからデータをとってきたり、自社サイトを横断的にクロールしてKPIをまとめるといったことも行うことができます。
これらは、カスタムメニューなどで提供される簡易的なUIを用いて、手軽に開発/利用することができます。
②Google Apps ScriptでWebアプリケーション(Web UI)を開発する
GASでは一般的なウェブ言語(HTML、CSS、JavaScript) を使って開発を行えます。必要に応じて、BootstrapやVueといったフレームワークを活用することで、よりモダンなWebアプリを構築することもできます。実際に当オフィスではこれらのフレームワークを用いて、短納期・高品質なアプリのご提供を試みています。
実際のソリューション事例としては、①スプレッドシートを簡易的なデータベースとして利用しつつ操作部分はWebのUIで提供する、②Google Cloud SQLを用いて本格的なデータベース連携Webアプリを構築する、といったパターンが考えられます。
③Google Apps Scriptでアドオンを開発する
開発したスクリプトをアドオンとして提供することができます。例えば、GoogleスプレッドシートベースのUIでGASのアプリを開発し運用しているけれども、ある時何らかの集計機能を他のスプレッドシートでも利用したいといった場合があります。こうした場合に独立したアドオンとして提供を行えば、一括で同一機能を修正できるといった利点があります。
また、開発したアドオンはGoogle Workspace Marketplaceで全世界へ共有することもできます。
なお、Google Workspace Marketplaceでは多くのサードパーティーのアドオンが多く提供されており、既にご利用の外部サービスと連携する際にはアドオンを活用するといった手段も考えられます。
④Google Apps Scriptでカスタム関数を開発する
Googleスプレッドシートで独自に定義した関数を開発することができます。例えば、西暦を和暦に変換する関数であったり、経理処理で軽減税率を考慮した消費税を計算する関数、教育分野で複数の評価項目から成績結果を返す関数などが考えられるでしょうか。アイデア次第で様々な関数を作りだせるところが魅力といえます。
⑤Google Apps Scriptでチャットボット(Chatbot)を開発する
お問い合わせの一次対応等にチャットボットを導入したい、といった場合にもGASを利用することができます。Google Chatを利用したチャットボットはもちろん、LINEやSlack、ChatWorkなど外部APIと連携させて構築することもできます。チャットアプリ側で質問された内容を、Googleスプレッドシート側で用意した回答データベースを元に返答するといったイメージになります。
Google Apps Scriptを使うメリット
Google Apps Scriptなら、すばやく簡単に開発が可能
実際に提供できるソリューションのイメージを前述しましたが、GASではこれらのアプリケーションを素早く開発できる環境にあります。開発言語が一般的なウェブ言語であることもありますが、それに加えて開発環境がGoogleのクラウドサーバー上にあるため、開発の敷居が非常に低くなっています。具体的にはプログラムを編集・実行・管理するスクリプトエディタや、操作対処となるGoogleスプレッドシートなどのドキュメント群、また事前統合されたGoogle アナリティクス、BigQuery などのAPI群の利用も可能です。利用可能なGoogleのAPIは100 以上にものぼります。
スクリプトもGoogleスプレッドシートなどと同様に他ユーザーと共有できますので、共同編集が可能です。
Google Apps Scriptで様々なシーンにおける生産性の向上を行う
「Google Apps Scriptでできること」で具体例を挙げましたが、ルーチンワークや単純作業の自動化が一番わかりやすい生産性の向上事例かと思います。個人的には、毎日行う事はもちろんですが、週1や月1回定期的にある業務で前回と同じ作業内容を(手順書などを確認しながら)繰り返すといったような内容に非常に効果を発揮すると感じています。トリガー設定で明け方にタスク実行するなどののオートメーション化もよいですね。
Webアプリ化やSlack等サードパーティーアプリとの連携・統合を行うことでも、日々のワークフローの効率化が可能です。
Google Apps Scriptはクラウドが前提のサービス
GASはGoogle Workspace / Google Cloud Platform上で動作するサービスであり必然的にクラウドでの実行が前提となっています。そのため、ローカルPC上で特別な環境設定をしなくても、開発や実行が可能となっています。
また、同時に共同での開発やサービス利用が可能となっている点も、開発者・利用者双方にメリットのある状況となっています。
Google Apps Scriptの制約
上述しましたようにGASは手軽に開発ができますが、制約もあります。
Google Apps Scriptの制限(実行の限界値)
GASの関数の実行時間やメール添付のファイルサイズなどには上限があります。例えば、GASの関数の実行時間は現在は、無料アカウントもGoogle Workspaceのどの契約プランでも6分となっています。
最新の限界値はこちらをご確認ください。
Google Apps Scriptの割当(実行回数の制限)
GASによるメール一括送信やスプレッドシート等のドキュメント作成は非常に便利ですが、1日の回数制限があります。回数制限はGmailアカウントおよびGoogle Workspaceユーザーであれば契約しているプランによって変わります。
最新の回数制限はこちらをご確認ください。
上述した限界値と回数制限の詳細については、別エントリーで解説したいと思います。
セキュリティポリシー
こちらはGoogle Apps ScriptよりもGoogle Workspaceに関わってくる部分です。Google Workspace上で外部ドメインとの情報共有に制限がかかっている場合、外部サービス連携やWebアプリ化をしようとした場合に、上手くいかないといったケースがでてきます。状況によりますが、実情に合わせて回避策を取り作りたいアプリを実現していく必要があります。場合によっては、制約に合わせて仕様を変更する必要もでてきます。
Google Apps Scriptの使い方
Gmail アカウントを持っていれば、誰でも利用することができます。必ずしも有料のGoogle Workspaceを利用している必要はありません。前述した制約の中にありましたように、1日の利用制限がGmailアカウントやGoogle Workspaceで異なってきます。個人ではない組織(法人等)の場合、実務上はGoogle Workspaceの導入が前提となるケースがほとんどです。
Google Apps Scriptの公式ドキュメント類
公式ドキュメント
公式ドキュメントのトップページはこちらです。前述した内容は(当然ですが)公式ドキュメントの内容を参照しつつ記載してます。レファレンスでは追いきれない疑問点などはStack Overflowで探すことが多いです。Google側もStack Overflowで質問してね、的な記述をしていたりしてます。
公式レファレンス
開発の際にはこちらのレファレンスを利用しながら、ということが多いです。ググると色々な記事がでてきますが、結局のところは公式レファレンスチェックする方が確実ですね。
リリースノート
こちらから確認できます。GASのメジャーな変更についてまとまっています。月1回くらいの頻度で更新が行われてます。
余談ですが、GASのトリガーが突然動かなくなった!といった場合が極稀にあるのですが、公式のアナウンスなども特になく、Twitterなどで調査をしてみると同様の現象に遭遇している人がおりどうも障害なのではないか〜ということがあります。ただ、公式のアナウンスはなく数時間でしれっと直っていたりするケースもあります。なので、そうした場合は少し待ってみるというのも一つの手かなと思います。