シンプルなトリガー

トリガーを使用すると、Apps Script は特定のイベントが発生したとき、 行う操作が少なくなります。単純なトリガーは Apps Script に組み込まれている予約済み関数(onOpen(e) 関数など) これは、ユーザーが Google ドキュメント、スプレッドシート、スライド、フォームのファイルを開くと実行されます。 インストール可能なトリガーを使用すると、 使用する前に有効化する必要があります。両方 Apps Script はトリガーされた関数を 情報を含むイベント オブジェクト 詳細情報を確認できます。

スタートガイド

シンプルなトリガーを使用するには、これらのいずれかを使用する関数を作成するだけです 予約済み関数名:

  • onOpen(e) は、ユーザーがスプレッドシート、ドキュメント、プレゼンテーション、または ユーザーが編集権限を持つフォームです。
  • onInstall(e) は、ユーザーがアプリをインストールすると実行されます 内からエディタアドオンを使用する Google ドキュメント、スプレッドシート、スライド、フォーム。
  • onEdit(e) は、ユーザーがスプレッドシートの値を変更すると実行されます。
  • onSelectionChange(e) は、ユーザーがスプレッドシートの選択内容を変更すると実行されます。
  • doGet(e) は、ユーザーがウェブアプリにアクセスすると実行されます プログラムがウェブアプリに HTTP GET リクエストを送信します。
  • doPost(e) は、プログラムが HTTP POST リクエストをウェブアプリに送信すると実行されます。

上記の関数名の e パラメータは、 渡されるイベント オブジェクト 使用します。このオブジェクトには、エラーの原因となったコンテキストに関する情報が 使用することもできますが、使用は任意です。

制限事項

単純なトリガーは、ユーザーに確認を求めることなく自動的に 認証にはいくつかの制限があります。

  • スクリプトは Google Cloud の Google API にバインド スプレッドシート、スライド、ドキュメント、フォームのファイルや アドオンで、Google Cloud 内で できます。
  • ファイルが読み取り専用(表示またはコメント)モードで開かれた場合、実行されません。
  • スクリプトの実行や API リクエストによってトリガーが実行されることはありません。たとえば Range.setValue() を呼び出し中 セルを編集しても、スプレッドシートの onEdit トリガーは実行されません。
  • アクセスを必要とするサービスにはアクセスできません。 認証。たとえば 単純なトリガーではメールを送信できません。これは、 Gmail サービスでは認証が必要ですが、 単純なトリガーでフレーズを翻訳できます。 言語サービス。匿名です。
  • バインドされているファイルの変更はできるが、他のファイルへのアクセスはできない 承認が必要になるためです
  • 現在のユーザーの身元を特定できる場合も、できない場合もあります。 影響する要因 複雑なセキュリティ制限のセット
  • 30 秒を超えて実行することはできません。
  • 特定の状況下では エディタのアドオンonOpen(e) を実行する および onEdit(e) の単純なトリガーが、 状況が複雑になります詳しくは、 アドオン承認ライフサイクルのガイドをご覧ください。
  • 単純なトリガーは Apps Script トリガーの対象になる 割り当て上限が適用されます。

これらの制限は doGet(e)doPost(e) には適用されません。

onOpen(e)

onOpen(e) トリガーは、ユーザーがスプレッドシートを開くと自動的に実行されます。 ドキュメント、プレゼンテーション、フォームに対してのみです。( フォームに応答するときのみトリガーは実行されません。 編集してください)。onOpen(e) は、カスタム コンテンツを追加したり、 メニュー項目から Google スプレッドシート、スライド、ドキュメント、 Google フォーム。

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

onInstall(e) トリガーは、ユーザーがアプリをインストールすると自動的に実行されます。 内からエディタアドオンを使用する Google ドキュメント、スプレッドシート、スライド、フォーム。トリガーは実行されませんが、 からアドオンがインストールされます。 Google Workspace Marketplace 確認できます注: onInstall(e) による操作には一定の制限があります。詳細 認証onInstall(e) の最も一般的な用途は、単に onOpen(e) を呼び出して、 カスタム メニューを作成します。アドオンをインストールすると ファイルはすでに開かれており そのため、ファイルを再度開くまで、onOpen(e) は自動的に実行されません。

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

onEdit(e) トリガーは、ユーザーが任意の値を変更すると自動的に実行されます。 セル。ほとんどの onEdit(e) トリガーは、 適切に応答する必要があります。 たとえば、次の onEdit(e) 関数は、セルにコメントを設定しています。 最後に編集された日時が記録されます。

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

onSelectionChange(e) トリガーは、ユーザーが設定を変更したときに自動的に実行されます。 選択することもできます。このトリガーを有効にするには、 スプレッドシートが開かれるたびにトリガーされます。

選択範囲が短時間で複数のセル間を移動すると、一部の選択範囲が 変更イベントはスキップされることがあります。たとえば、多くの選択が 2 秒以内で変更が行われ、最初と最後の変更のみが 選択内容を変更すると、「onSelectionChange(e)」トリガーが有効になります。

以下の例では、 空のセルが選択された場合、onSelectionChange(e) 関数はセルの 背景を赤にします。

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e)doPost(e)

doGet(e) トリガーは、ユーザーがウェブサイトにアクセスすると自動的に実行されます ウェブアプリ、またはプログラムが HTTP GET リクエストを送信する ウェブアプリにデプロイできますdoPost(e) は、プログラムが HTTP POST リクエストを できます。これらのトリガーについては、ガイドで詳しく説明しています。 ウェブアプリHTML サービスコンテンツ サービスdoGet(e)doPost(e) には上記の制限は適用されません。

使用可能なトリガーのタイプ

単純なトリガーの制限により、 インストール可能なトリガー 可能性があります。以下の表に、対象となるトリガーのタイプをまとめます。 イベントタイプごとに確認できます。たとえば、Google スプレッドシート、スライド、フォーム、 すべてのドキュメントで、開くシンプルなトリガーに対応(スプレッドシート、ドキュメント、フォームのみに対応) Open Triggers などです

イベント 単純なトリガー インストール可能なトリガー
開く
スプレッドシート
スライド
フォーム*
ドキュメント

function onOpen(e)

スプレッドシート
フォーム*
ドキュメント
編集
スプレッドシート

function onEdit(e)

スプレッドシート
選択内容の変更
スプレッドシート

function onSelectionChange(e)

インストール
スプレッドシート
スライド
フォーム
ドキュメント

function onInstall(e)

変更
スプレッドシート
フォームの送信
スプレッドシート
フォーム
時間駆動型(時計)
スプレッドシート
スライド
フォーム
ドキュメント
スタンドアロン
Get
スタンドアロン

function doGet(e)

投稿
スタンドアロン

function doPost(e)

* Google フォームのオープン イベントは、ユーザーが 代わりに、編集者がフォームを開いたときに変更することができます。