ADVERTISEMENT

【Googleドキュメント】Apps Scriptのトリガー設定!時間ベース・イベントベース

【Googleドキュメント】Apps Scriptのトリガー設定!時間ベース・イベントベース
🛡️ 超解決

Googleドキュメントで繰り返し行う作業を自動化したいと考えたことはありませんか。Apps Scriptのトリガーを使えば、指定した時刻やイベントをきっかけにスクリプトを自動実行できます。この記事では、時間ベースとイベントベースの2種類のトリガーの設定方法を詳しく説明します。トリガーの仕組みを理解して、業務効率を大幅に向上させましょう。

【要点】Apps Scriptのトリガー設定で自動実行を実現する

  • 時間ベーストリガー: 特定の日時や間隔でスクリプトを実行します。定期的なデータ更新やメール送信に便利です。
  • イベントベーストリガー: ドキュメントの開封・編集・フォーム送信などのイベントに応じてスクリプトを実行します。
  • トリガーの管理と削除: 設定後も実行ログを確認したり、不要なトリガーは簡単に削除できます。

ADVERTISEMENT

Apps Scriptのトリガーとは

Apps Scriptのトリガーは、スクリプトを自動的に起動するための仕組みです。時間ベーストリガーは時計に基づいて、イベントベーストリガーはユーザーの操作や外部イベントに基づいて動作します。トリガーを利用することで、手動でスクリプトを実行する手間を省き、作業を完全に自動化できます。トリガーの種類を理解することが、適切な自動化の第一歩です。

時間ベーストリガーの設定手順

時間ベーストリガーは、指定した間隔(分単位、時間単位、日単位、週単位)や特定の日時にスクリプトを実行します。設定はスクリプトエディタから行います。

  1. スクリプトエディタを開く
    Googleドキュメントで「拡張機能」→「Apps Script」をクリックしてスクリプトエディタを開きます。
  2. トリガー設定画面を表示
    左側のメニューから「トリガー」アイコン(時計マーク)をクリックします。初回は「トリガーを追加」ボタンが表示されます。
  3. 実行する関数を選択
    「実行する関数」のプルダウンから、トリガーで起動したい関数名を選びます。
  4. 時間ベースのトリガーを選択
    「イベントのソース」で「時間主導型」を選びます。次に「時間ベースのトリガーのタイプ」で間隔を指定します。例えば「分タイマー」なら「1分おき」「5分おき」などが選べます。
  5. エラー通知設定
    「エラー通知設定」で、失敗時にメール通知を受け取るかどうかを選びます。通常は「今すぐ通知を受け取る」にしておくと安心です。
  6. 保存して承認
    「保存」ボタンをクリックし、初回は権限の承認を求められます。自分のアカウントで承認を行ってください。

具体的な時間ベーストリガーの例

例えば、毎朝9時にドキュメントの内容をPDFでメール送信したい場合、関数にメール送信処理を書き、トリガーを「日付ベースのタイマー」で「午前9時~10時」の間に設定します。週単位の場合は「毎週月曜日」などの指定も可能です。トリガーの実行間隔は最小1分から設定できるため、頻繁な更新が必要な処理にも対応できます。

イベントベーストリガーの設定手順

イベントベーストリガーは、ドキュメントの開封(onOpen)、編集(onEdit)、フォーム送信時(フォーム送信時)などのイベントでスクリプトを実行します。設定方法は時間ベースと似ていますが、イベントの種類を選ぶ点が異なります。

  1. スクリプトエディタを開く
    同様に「拡張機能」→「Apps Script」でスクリプトエディタを開きます。
  2. トリガー設定画面を表示
    左メニューの「トリガー」アイコンをクリックします。
  3. イベントのソースを選択
    「イベントのソース」で「Googleドキュメント」「Googleスプレッドシート」「フォーム」など、スクリプトが紐づくアプリケーションを選びます。
  4. イベントタイプを選択
    「イベントタイプ」で「開く」「編集」「変更」「フォーム送信時」などから適切なものを選びます。例えばドキュメントが開かれたときに実行したい場合は「開く」を選びます。
  5. 実行する関数を指定
    「実行する関数」に、イベント発生時に呼び出す関数名を入力します。なお、onOpenやonEditという特別な関数名を使うと、トリガーを設定しなくても自動的に呼び出される場合がありますが、明示的にトリガーを設定することで動作を確実にできます。
  6. 保存して承認
    「保存」をクリックし、権限承認を行います。

イベントベーストリガーの注意点

onOpenトリガーはドキュメントを開いたとき、onEditトリガーはセルの編集時に動作します。ただし、これらのトリガーには実行時間制限(30秒)があり、重い処理を行うとタイムアウトする可能性があります。そのため、軽量な処理だけを記述するか、時間ベーストリガーと組み合わせて使うことをおすすめします。また、フォーム送信時トリガーはGoogleフォームにリンクしたスプレッドシートでのみ利用できます。

ADVERTISEMENT

トリガーの管理と削除方法

設定したトリガーはいつでも確認・編集・削除できます。スクリプトエディタの「トリガー」画面には現在のトリガー一覧が表示されます。各トリガーの右端にある編集アイコン(鉛筆)をクリックすると設定を変更でき、削除アイコン(ゴミ箱)をクリックするとトリガーを削除できます。また、実行ログを確認するには「表示」→「ログ」を開くと、トリガーが実行された日時と結果が表示されます。エラーが発生した場合は、ログから原因を特定できます。

注意点とよくあるトラブル

トリガーが実行されない

トリガーが正しく動作しない場合、まず権限が正しく承認されているか確認してください。特に時間ベーストリガーは、スクリプトの所有者が権限を付与する必要があります。また、スクリプトに構文エラーがないか、関数名が正しいかをチェックします。トリガーの実行間隔が短すぎると、1日の実行回数制限(通常は合計で1時間あたり1,000回程度)に達して停止することがあります。

トリガーが重複して実行される

誤って同じトリガーを複数設定してしまうと、スクリプトが重複実行される原因になります。トリガー一覧で重複がないか確認し、不要なトリガーは削除しましょう。また、スクリプト内でトリガーをプログラム的に作成する場合は、既存のトリガーを削除してから新しいトリガーを作成するロジックを入れると安全です。

実行時間制限を超える

Apps Scriptのトリガーには実行時間制限(時間ベースで6分、イベントベースで30秒)があります。長い処理が必要な場合は、処理を分割して複数のトリガーで段階的に実行するか、時間ベーストリガーを短い間隔で設定して少しずつ処理する工夫が必要です。また、大量のデータを扱う場合は、スプレッドシートのAPI制限にも注意してください。

時間ベーストリガーとイベントベーストリガーの比較

比較項目 時間ベーストリガー イベントベーストリガー
起動タイミング 指定した日時または間隔 ユーザー操作やフォーム送信など
主な用途 定期的なバックアップ、レポート生成、メール配信 リアルタイムなデータ検証、自動返信、変更の記録
実行時間制限 6分 30秒
設定の複雑さ 簡単(GUIで選択) 簡単(ただしイベントの種類を理解する必要あり)
実行回数制限 1時間あたり約1000回まで イベント発生ごとに実行(ただしスパム防止制限あり)

まとめ

この記事では、GoogleドキュメントのApps Scriptにおける時間ベース・イベントベースのトリガー設定方法を解説しました。時間ベーストリガーでは定期的な自動処理、イベントベーストリガーではユーザー操作に応じた即時処理が実現できます。トリガーの管理やエラー対処法も合わせて覚えておくと、トラブルなく自動化を運用できます。次は実際にスクリプトを書いて、トリガーと組み合わせた自動化の仕組みを作ってみてください。応用として、条件分岐や複数トリガーの組み合わせにも挑戦してみましょう。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

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