イベント オブジェクト

シンプルなトリガーインストール可能なトリガーを使用すると、特定のイベントが発生した場合に Google Apps Script が関数を自動的に実行できます。トリガーが起動すると、Apps Script は通常 e というイベント オブジェクトを引数として関数に渡します。イベント オブジェクトには、トリガーが起動したコンテキストに関する情報が含まれます。たとえば、次のサンプルコードは、イベント オブジェクトを使用して編集されたセルを特定する Google スプレッドシート スクリプトの簡単な onEdit(e) トリガーを示しています。

function onEdit(e){
  // Set a comment on the edited cell to indicate when it was changed.
  var range = e.range;
  range.setNote('Last modified: ' + new Date());
}

このページでは、さまざまなタイプのトリガーのイベント オブジェクトのフィールドについて説明します。

インストール可能なトリガーによって生成されたイベントには、イベントを生成したトリガーを識別する triggerUid が含まれます。これは、複数のインストール可能なトリガーがあるスクリプトに役立ちます。

Google スプレッドシートのイベント

Google スプレッドシート固有のさまざまなトリガーを使用すると、スクリプトでスプレッドシート内のユーザーのアクションに応答できます。

開く

simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

スクリプトがバインドされているスプレッドシート ファイルを表す Spreadsheet オブジェクト。

Spreadsheet
triggerUid

このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。

4034124084959907503
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com

変更

installable
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
changeType

変更の種類(EDITINSERT_ROWINSERT_COLUMNREMOVE_ROWREMOVE_COLUMNINSERT_GRIDREMOVE_GRIDFORMATOTHER)。

INSERT_ROW
source

スクリプトがバインドされているスプレッドシート ファイルを表す Spreadsheet オブジェクト。

Spreadsheet
triggerUid

このイベントを生成したトリガーの ID。

4034124084959907503
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com

編集

simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
oldValue

編集前のセル値(ある場合)。編集された範囲が単一のセルである場合にのみ使用できます。セルに以前のコンテンツがない場合は未定義です。

1234
range

編集されたセルまたはセル範囲を表す Range オブジェクト。

Range
source

スクリプトがバインドされているスプレッドシート ファイルを表す Spreadsheet オブジェクト。

Spreadsheet
triggerUid

このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。

4034124084959907503
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com
value

編集後の新しいセルの値。編集された範囲が単一のセルである場合にのみ使用できます。

10

フォーム送信

installable
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
namedValues

フォーム送信の質問名と値を含むオブジェクト。

{
  'First Name': ['Jane'],
  'Timestamp': ['6/7/2015 20:54:13'],
  'Last Name': ['Doe']
}
range

編集されたセルまたはセル範囲を表す Range オブジェクト。

Range
triggerUid

このイベントを生成したトリガーの ID。

4034124084959907503
values

スプレッドシートに表示される順序と同じ順序で値を含む配列。

['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill',
'28', 'Susan', '25']

Google ドキュメントのイベント

トリガーを使用すると、ユーザーがドキュメントを開いたときに Docs が応答できるようになります。

開く

simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

スクリプトがバインドされているドキュメント ファイルを表す Document オブジェクト。

Document
triggerUid

このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。

4034124084959907503
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com

Google スライドのイベント

トリガーを使用すると、ユーザーがプレゼンテーションを開いたときにスライドが応答できるようになります。

開く

シンプル
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

スクリプトがバインドされているスライド ファイルを表す Presentation オブジェクト。

Presentation
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com

Google フォームのイベント

フォーム固有のトリガーを使用すると、ユーザーがフォームを編集したり、回答を送信したりしたときにスクリプトが応答できます。

開く

*(simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

スクリプトがバインドされているフォーム ファイルを表す Form オブジェクト。

Form
triggerUid

このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。

4034124084959907503
user

アクティブなユーザーを表す User オブジェクト(利用可能な場合。複雑なセキュリティ制限のセットに依存します)。

amin@example.com

* このイベントは、ユーザーが回答するためにフォームを開いたときではなく、編集者がフォームを開いて変更したときに発生します。

フォーム送信

installable
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
response

フォーム全体に対するユーザーの回答を表す FormResponse オブジェクト。

FormResponse
source

スクリプトがバインドされているフォーム ファイルを表す Form オブジェクト。

Form
triggerUid

このイベントを生成したトリガーの ID。

4034124084959907503

Google カレンダーの予定

Google カレンダーのトリガーは、ユーザーのカレンダーの予定が更新(作成、編集、削除)されたときに起動します。

これらのトリガーは、どのイベントがどのように変更されたかを通知しません。代わりに、コードがカレンダーの最近の変更を取得するために増分同期オペレーションを実行する必要があることを示します。この手順の詳細については、Calendar APIリソースの同期ガイドをご覧ください。

Apps Script でカレンダーと同期するには、次の手順を行います。

  1. スクリプト プロジェクトでカレンダーの拡張サービスを有効にします。このワークフローでは、組み込みのカレンダー サービスでは不十分です。
  2. 同期するカレンダーを決定します。カレンダーごとに、Calendar の高度なサービスの Events.list() メソッドを使用して初回同期オペレーションを実行します。
  3. 最初の同期では、そのカレンダーの nextSyncToken が返されます。このトークンは後で使用するために保存しておきます。
  4. Apps Script の EventUpdated トリガーが起動してカレンダーの予定の変更が示されたら、保存された nextSyncToken を使用して、影響を受けたカレンダーの増分同期を行います。これは基本的に別の Events.list() リクエストですが、nextSyncToken を指定すると、レスポンスは前回の同期以降に変更されたイベントのみに制限されます。
  5. 同期のレスポンスを調べて、更新されたイベントを把握し、コードで適切に対応します。たとえば、変更をログに記録する、スプレッドシートを更新する、メール通知を送信するなどのアクションを実行できます。
  6. そのカレンダーに保存されている nextSyncToken を、増分同期リクエストから返されたものに更新します。これにより、次の同期オペレーションで最新の変更のみが返されるようになります。

同期トークンはサーバーによって無効化されることがあり、その結果 410 エラーが発生します。この場合、コードで完全同期を行い、そのカレンダーの保存済み同期データとトークンをすべて置き換える必要があります。

EventUpdated

installable
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
calendarId

イベントの更新が行われたカレンダーの文字列 ID。

susan@example.com
triggerUid

このイベントを生成したトリガーの ID。

4034124084959907503

Google Workspace アドオンのイベント

onInstall() トリガーは、ユーザーがアドオンをインストールすると自動的に実行されます。

インストール

シンプル
authMode

ScriptApp.AuthMode 列挙型の値。

FULL

Google Chat アプリのイベント

Google Chat のイベント オブジェクトについては、Google Chat アプリとのインタラクションを受信して応答するをご覧ください。

時間主導型イベント

時間主導型トリガー(クロック トリガーとも呼ばれます)を使用すると、特定の時間または定期的な間隔でスクリプトを実行できます。

時間主導型(インストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
day-of-month

131 の範囲。

このプロパティ名にはダッシュが含まれているため、ドット表記ではなく e['day-of-month'] を使用してアクセスする必要があります。

31
day-of-week

1(月曜日)~7(日曜日)。

このプロパティ名にはダッシュが含まれているため、ドット表記ではなく e['day-of-week'] を使用してアクセスする必要があります。

7
hour

023 の範囲。

23
minute

059 の範囲。

59
month

112 の範囲。

12
second

059 の範囲。

59
timezone

タイムゾーン。

UTC
triggerUid

このイベントを生成したトリガーの ID。

4034124084959907503
week-of-year

152 の範囲。

このプロパティ名にはダッシュが含まれているため、ドット表記ではなく e['week-of-year'] を使用してアクセスする必要があります。

52
year

年です。

2015