イベント オブジェクト

シンプルなトリガーインストール可能なトリガーを使用すると、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());
}

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

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

Google スプレッドシート固有のさまざまなトリガーにより、スプレッドシート内のユーザーの操作にスクリプトが応答できるようになります。

オープン

シンプルインストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com

変更

(インストール可能)
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
changeType

変更のタイプ(EDITINSERT_ROWINSERT_COLUMNREMOVE_ROWREMOVE_COLUMNINSERT_GRIDREMOVE_GRIDFORMAT、または OTHER)。

INSERT_ROW
source

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com

編集

シンプルインストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
oldValue

編集前のセル値(存在する場合)。編集した範囲が 1 つのセルの場合にのみ使用できます。セルに以前のコンテンツがない場合は未定義になります。

1234
range

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

Range
source

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com
value

編集後の新しいセルの値。編集した範囲が 1 つのセルの場合にのみ使用できます。

10

フォームの送信

(インストール可能)
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 ドキュメントのイベント

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

オープン

シンプルインストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

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

Document
triggerUid

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

4034124084959907503
user

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

amin@example.com

Google スライドのイベント

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

オープン

(シンプル)
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

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

Presentation
user

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

amin@example.com

Google フォームのイベント

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

オープン

*(シンプルインストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

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

Form
triggerUid

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

4034124084959907503
user

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

amin@example.com

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

フォームの送信

(インストール可能)
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
response

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

FormResponse
source

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

Form
triggerUid

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

4034124084959907503

Google カレンダーの予定

ユーザーのカレンダーの予定が更新(作成、編集、削除)されると、カレンダー トリガーが配信されます。

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

Apps Script でカレンダーと同期する手順は次のとおりです。

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

EventUpdated

(インストール可能)
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