[GAS] 自動実行するしくみ、トリガ2種類を紹介

最近の簡単な業務案件は Google Workspace を推奨しています。クラウドで動く、複数人で同時運用できる、ライセンス面で Office より手軽に使える、外部通信が充実している、GAS が安定しているのが主なメリットです。

GAS は Excel マクロと同等のものです。Excel VBA はローカル環境で動かす分には問題無いので、案件によって使い分けています。

GAS にも自動実行の仕組みがあり、主に以下の2種類があります。(参考)

  • シンプルトリガ
    スクリプト内に以下の名前で関数を設置するだけで実行されるものです。簡単に設定できますが、承認が必要なもの、実行時間などで機能制限があります。
    • onOpen
      スプレッドシート、ドキュメント、プレゼンテーション、フォームを開いたときに実行されます。初期化に便利ですね。
    • onInstall
      GAS をアドオンにしている状態で、スプレッドシート、ドキュメント、スライド、フォームからこのアドオンをインストールしたときに実行されます。アドオンの設定周りの初期化に使えます。
    • onEdit
      スプレッドシートのセルを変更したときに実行されます。入力補助などでいかがでしょうか? 
    • onSelectionChange
      スプレッドシートのプルダウン関係を変更したときに実行されます。
    • doGet
      特に独立したスクリプトにおいて、GAS をウェブアプリとして公開する機能があるのですが、ユーザーがこの URL にアクセスしてきた場合に実行されます。簡単な Web コンテンツを表示するときに便利です。
    • doPost
      名前で察しがつくかもしれませんが、doGet が通常のアクセスであるのに対して、データを送信するときに使う POST を受け付けるときに使います。

  • インストール可能トリガ
    こちらは実行アカウントが固定されているもので、シンプルトリガよりも自由度が上がります。

    • 時間駆動型トリガ
      あらかじめ決めた時間に実行されます。
    • イベント駆動トリガ
      上記のセルが変更されたときに実行、などと同じことができます。こちらは外部通信などの制限が緩和されています。
      たとえばスプレッドシートの GAS からシンプルトリガでフォームを開くときに権限エラーが出てしまいますが、インストール可能トリガでは実行アカウントによる権限で実行できます。