シンプルなトリガー

トリガーを使用すると、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 などです

イベント 単純なトリガー インストール可能なトリガー
開く
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
<ph type="x-smartling-placeholder">
</ph>
スライド
<ph type="x-smartling-placeholder">
</ph>
フォーム*
<ph type="x-smartling-placeholder">
</ph>
ドキュメント

function onOpen(e)

<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
<ph type="x-smartling-placeholder">
</ph>
フォーム*
<ph type="x-smartling-placeholder">
</ph>
ドキュメント
編集
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート

function onEdit(e)

<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
選択内容の変更
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート

function onSelectionChange(e)

インストール
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
<ph type="x-smartling-placeholder">
</ph>
スライド
<ph type="x-smartling-placeholder">
</ph>
フォーム
<ph type="x-smartling-placeholder">
</ph>
ドキュメント

function onInstall(e)

変更
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
フォームの送信
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
<ph type="x-smartling-placeholder">
</ph>
フォーム
時間駆動型(時計)
<ph type="x-smartling-placeholder">
</ph>
スプレッドシート
<ph type="x-smartling-placeholder">
</ph>
スライド
<ph type="x-smartling-placeholder">
</ph>
フォーム
<ph type="x-smartling-placeholder">
</ph>
ドキュメント
<ph type="x-smartling-placeholder">
</ph>
スタンドアロン
Get
<ph type="x-smartling-placeholder">
</ph>
スタンドアロン

function doGet(e)

投稿
<ph type="x-smartling-placeholder">
</ph>
スタンドアロン

function doPost(e)

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