ADVERTISEMENT

【Googleスプレッドシート】Apps Scriptのトリガー一覧と用途別の使い分け!イベント別の選び方

【Googleスプレッドシート】Apps Scriptのトリガー一覧と用途別の使い分け!イベント別の選び方
🛡️ 超解決

Googleスプレッドシートで作業の自動化をしたいと考える時、Apps Scriptのトリガー機能が非常に役立ちます。しかし、トリガーには複数の種類があり、どのイベントにどのトリガーを使えばよいのか迷ってしまう方も多いでしょう。この記事では、Apps Scriptで利用できるすべてのトリガーを一覧で紹介し、用途別の選び方を詳しく解説します。これを読めば、自分の目的に最適なトリガーを選べるようになります。

【要点】Apps Scriptのトリガーはイベントの種類によって使い分けが必須です

  • シンプルトリガー(onOpen, onEdit): スプレッドシートを開いたときやセルを編集したときに即座に動作させたい簡単な処理に使います。
  • 時間主導型トリガー: 定期的なデータ更新やレポート送信など、特定の時間や間隔で実行するバッチ処理に最適です。
  • イベントトリガー(編集・変更・フォーム送信): セルの編集やフォームからの回答受信などのタイミングで高度な処理を実行する場合に使用します。

ADVERTISEMENT

Apps Scriptのトリガーの仕組みと基本概念

Apps Scriptのトリガーとは、特定のイベントが発生したときに自動的にスクリプトを実行する仕組みです。Googleスプレッドシートでは、シートを開いたりセルを編集したりするタイミングで関数を呼び出せます。トリガーには「シンプルトリガー」と「インストール可能トリガー」の2種類があります。シンプルトリガーは簡単な処理に適しており、特別な設定なしで利用できます。インストール可能トリガーはより複雑な処理や権限が必要な操作に対応しており、プロジェクトごとに手動で設定します。

トリガーの種類と用途別の使い分け

シンプルトリガー:onOpenとonEditの使い方

シンプルトリガーは、特殊な関数名を使って定義します。onOpenはスプレッドシートを開いたときに実行されます。例えば、メニューをカスタマイズしたり、開いたときに特定のセルを選択したりする処理に使えます。onEditはセルの内容が編集されたときに実行され、編集内容をログに残すといったシンプルな処理に適しています。ただし、これらのトリガーには実行時間の制限があり、複雑な処理や外部APIへのアクセスはできません。

時間主導型トリガー:定期的な処理を自動化

時間主導型トリガーは、指定した時刻や間隔でスクリプトを実行します。日次、週次、月次、または特定の時間(例:毎朝9時)に設定可能です。例えば、毎日決まった時間に売上データを集計してメール送信する処理に便利です。時間主導型トリガーはインストール可能トリガーの一種で、任意の関数を好きな間隔で呼び出せます。

イベントトリガー:編集・変更・フォーム送信

イベントトリガーは、シート内のデータ変更やGoogleフォームからの回答受信を検知してスクリプトを実行します。編集トリガーはonEditと似ていますが、より詳細な制御が可能です。変更トリガーは書式の変更なども検知します。フォーム送信トリガーはフォームが送信されたときに関数を実行し、回答データを別のシートに転記するなどの処理に使います。

トリガーを設定する手順

  1. Apps Scriptエディタを開く
    スプレッドシートのメニューから「拡張機能」→「Apps Script」をクリックします。
  2. スクリプトを記述する
    トリガーで実行したい関数をコードエディタに記述します。例:function myFunction() { ... }
  3. トリガーを追加する
    エディタの左側メニューで「トリガー」アイコン(時計マーク)をクリックし、「トリガーを追加」ボタンを押します。
  4. イベントの種類を選択する
    「実行する関数を選択」で対象の関数を選び、「イベントのソース」で「時間主導型」「スプレッドシートから」「フォームから」などを選択します。
  5. トリガーの条件を設定する
    時間主導型なら時間の間隔を、スプレッドシートイベントなら編集や変更の種類を選びます。
  6. 保存して承認する
    「保存」をクリックし、初回は権限の承認画面が表示されるので許可します。

ADVERTISEMENT

トリガー使用時の注意点とよくあるトラブル

シンプルトリガーの制限に注意する

onOpenやonEditは実行時間が30秒に制限されています。また、これらのトリガーではアクセス権限が必要なサービス(Gmail送信など)は使用できません。複雑な処理には必ずインストール可能トリガーを使いましょう。

トリガーが重複して設定されないようにする

同じ関数に複数のトリガーを設定すると、予期せぬ動作を引き起こすことがあります。トリガーの管理画面で一覧を確認し、不要なトリガーは削除してください。

時間主導型トリガーの遅延が発生する場合がある

時間主導型トリガーは厳密な時刻保証はなく、数分の遅延が生じることがあります。正確な時刻に実行する必要がある場合は、トリガーを予定時刻より早めに設定するなどの工夫が必要です。

フォーム送信トリガーは受け取った回答にのみ反応する

フォーム送信トリガーは、フォームが送信された瞬間にのみ動作します。過去の回答データには反応しません。既存のデータを処理したい場合は、別の方法(手動実行や時間主導トリガー)を組み合わせましょう。

トリガーの比較表

トリガー種別 イベント 用途例 制限
シンプルトリガー (onOpen) シートを開く カスタムメニューの作成、初期設定 実行時間30秒、権限制限あり
シンプルトリガー (onEdit) セルの編集 編集ログの記録、簡易チェック 実行時間30秒、権限制限あり
時間主導型トリガー 指定時刻・間隔 定期的な集計、メール送信 遅延の可能性、1時間単位の設定が基本
イベントトリガー(編集) セルの値の変更 高度なデータ検証、自動計算 なし(インストール可能)
イベントトリガー(変更) 書式・値の変更 シートの変更履歴を追跡 なし(インストール可能)
イベントトリガー(フォーム送信) Googleフォームの回答受信 回答データの自動転記、通知メール 過去回答には反応しない

この表を参考に、自分の自動化したい処理に最適なトリガーを選んでください。シンプルな処理にはシンプルトリガー、定期的なバッチ処理には時間主導型、リアルタイムのデータ変更にはイベントトリガーが適しています。

以上が、Apps Scriptのトリガー一覧と用途別の選び方です。自分がやりたい処理に合わせて適切なトリガーを設定することで、スプレッドシート作業を大幅に効率化できます。まずは簡単なonEditトリガーから試して、慣れてきたら時間主導型トリガーやフォーム送信トリガーにも挑戦してみてください。自動化の幅が広がります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。