トリガーを使用すると、ドキュメントを開くなどの特定のイベントが発生したときに、Google Apps Script
が関数を自動的に実行できます。シンプル トリガーは、Apps Script に組み込まれた予約済みの関数セットです。たとえば、ユーザーが Google
ドキュメント、スプレッドシート、スライド、フォームのファイルを開くと、onOpen(e)
関数が実行されます。
インストール可能なトリガーは、シンプル
トリガーよりも多くの
機能を提供しますが、使用する前に有効にする必要があります。どちらのタイプのトリガーでも、Apps Script は、イベントが発生したコンテキストに関する情報を含む
イベント オブジェクトをトリガー関数に渡します。
Google Workspace アドオン プロジェクトでトリガーを使用する方法については、Google Workspace アドオンのトリガーをご覧ください。
スタートガイド
シンプル トリガーを使用するには、次の予約済み関数名のいずれかを使用する関数を作成します。
onOpen(e)は、ユーザーが編集権限を持つスプレッドシート、ドキュメント、プレゼンテーション、フォームを開くと実行されます。onInstall(e)は、ユーザーが Google ドキュメント、スプレッドシート、スライド、フォーム内からエディタ アドオンをインストールすると実行されます。onEdit(e)は、ユーザーがスプレッドシートの値を変更すると実行されます。onSelectionChange(e)は、ユーザーがスプレッドシートの選択を変更すると実行されます。doGet(e)は、ユーザーが ウェブアプリ にアクセスしたとき、またはプログラムがウェブアプリに HTTPGETリクエストを送信したときに実行されます。doPost(e)は、プログラムがウェブアプリに HTTPPOSTリクエストを送信したときに実行されます。
上記の関数名の e パラメータは、関数に渡される
イベント オブジェクトです。このオブジェクトには、トリガーが発生したコンテキストに関する情報が含まれていますが、使用は任意です。
制限事項
シンプル トリガーは、ユーザーに承認を求めることなく自動的に起動するため、いくつかの制限があります。
- スクリプトは、Google スプレッドシート、スライド、ドキュメント、フォームのファイルにバインドされているか、これらのアプリケーションのいずれかを拡張する アドオン である必要があります。
- ファイルが読み取り専用(表示またはコメント)モードで開かれている場合は実行されません。
- スクリプトの実行と API リクエストでは、トリガーは実行されません。たとえば、
Range.setValue()を呼び出してセルを編集しても、スプレッドシートのonEditトリガーは実行されません。 - 承認が必要なサービスには アクセスできません。たとえば、 Gmail サービスには承認が必要なため、シンプル トリガーでメールを送信することはできませんが、匿名である Language サービスを使用してフレーズを翻訳することはできます。
- バインドされているファイルは変更できますが、他のファイルにアクセスするには承認が必要なため、アクセスできません。
- 複雑なセキュリティ制限の複雑なセットによっては、現在のユーザーの ID を特定できる場合とできない場合があります。
- 30 秒を超えて実行することはできません。
- 状況によっては、
エディタ アドオンは、追加の複雑さを伴う承認なしモードで
onOpen(e)とonEdit(e)のシンプル トリガーを実行します。詳細については、 アドオンの承認ライフサイクルに関するガイドをご覧ください。 - シンプル トリガーには、Apps Script トリガー の割り当て上限が適用されます。
これらの制限は、doGet(e) または doPost(e) には適用されません。
onOpen(e)
ユーザーが編集権限を持つスプレッドシート、ドキュメント、プレゼンテーション、フォームを開くと、onOpen(e)
トリガーが自動的に実行されます (トリガーは、フォームへの回答時ではなく、フォームを開いて編集するときにのみ実行されます)。 onOpen(e) は、Google スプレッドシート、スライド、ドキュメント、フォームにカスタム
メニュー項目を追加するために最もよく使用されます。
onInstall(e)
ユーザーが Google ドキュメント、スプレッドシート、スライド、またはフォーム内からエディタ アドオンをインストールすると、onInstall(e) トリガーが自動的に実行されます。ユーザーが
Google Workspace Marketplace
ウェブサイトからアドオンをインストールしても、トリガーは実行されません。
onInstall(e)
の最も一般的な用途は、onOpen(e) を呼び出してカスタム メニューを追加することです。アドオンがインストールされると、ファイルはすでに開いているため、ファイルを再度開かない限り、onOpen(e)
は単独では実行されません。
onInstall(e) で実行できることには制限があります。詳しくは、承認をご覧ください。
onEdit(e)
ユーザーがスプレッドシートの任意のセルの値を変更すると、onEdit(e)
トリガーが自動的に実行されます。ほとんどの onEdit(e) トリガーは、
イベント オブジェクトの情報を使用して適切に応答します。
たとえば、次の onEdit(e)
関数は、最後に編集された時刻を記録するセルにコメントを設定します。
onEdit() トリガーは、最大 2 つのトリガー イベントをキューに登録します。
onSelectionChange(e)
ユーザーがスプレッドシートの選択を変更すると、onSelectionChange(e)
トリガーが自動的に実行されます。このトリガーを有効にするには、トリガーを追加した後、スプレッドシートを開くたびにスプレッドシートを更新します。
選択が短時間で複数のセル間を移動すると、レイテンシを短縮するために一部の選択変更イベントがスキップされることがあります。たとえば、2
秒以内に多くの選択変更が行われた場合、最初と最後の選択変更のみで onSelectionChange(e) トリガーが有効になります。
次の例では、空のセルが選択されると、onSelectionChange(e) 関数によってセルの背景が赤に設定されます。
doGet(e) と doPost(e)
doGet(e) トリガーは、ユーザーが
ウェブアプリにアクセスしたとき、またはプログラムがウェブアプリに HTTP GET リクエスト
を送信したときに自動的に実行されます。doPost(e) は、プログラムがウェブアプリに HTTP POST リクエストを
ウェブアプリに送信したときに実行されます。これらのトリガーについては、
ウェブアプリ、HTML サービス、
および コンテンツ サービスのガイドで詳しく説明しています。doGet(e) と doPost(e) には、上記の制限は適用されません。
使用可能なトリガーの種類
シンプル トリガーの制限により ニーズを満たせない場合は、インストール可能なトリガー を使用できます。次の表に、イベントの種類ごとに使用できるトリガーの種類をまとめます。たとえば、Google スプレッドシート、スライド、フォーム、ドキュメントはすべてシンプルなオープン トリガーをサポートしていますが、インストール可能なオープン トリガーをサポートしているのはスプレッドシート、ドキュメント、フォームのみです。
| イベント | シンプル トリガー | インストール可能なトリガー |
|---|---|---|
| 開く |
[
[
[
[
|
[
[
[ |
| 編集 |
[
|
[ |
| 選択の変更 |
[
|
|
| インストール |
[
[
[
[
|
|
| 変更 |
[ |
|
| フォーム送信 |
|
|
| 時間主導型(時計) |
[
[
[
[
[ |
|
| Get |
|
|
| 投稿 |
|
* Google フォームのオープン イベントは、ユーザーがフォームを開いて回答するときではなく、編集者がフォームを開いて変更するときに発生します。
[
[
[
[
[