イベント オブジェクト

シンプルなトリガーインストール可能なトリガーにより、特定のイベントが発生したときに、Apps Script によって自動的に関数が実行されます。トリガーが起動すると、Apps Script は引数としてイベント オブジェクト(通常は e という)を渡します。イベント オブジェクトには、トリガーを発動させたコンテキストに関する情報が含まれます。たとえば、以下のサンプルコードは、イベント オブジェクトを使用して Google のどのセルが編集されたかを特定する 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_GRIDFORMATOTHER)。

INSERT_ROW
triggerUid

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

4034124084959907503
user

可能であれば、アクティブ ユーザーを表す User オブジェクト(複雑なセキュリティ制限のセットによって異なる)。

amin@example.com

Edit

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

ScriptApp.AuthMode 列挙型の値。

LIMITED
oldValue

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

1234
range

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

Range
source

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

Spreadsheet
triggerUid

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

4034124084959907503
user

可能であれば、アクティブ ユーザーを表す User オブジェクト(複雑なセキュリティ制限のセットによって異なる)。

amin@example.com
value

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

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

予定の更新

インストール可能
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
calendarId

イベントが発生したカレンダーの文字列 ID。

susan@example.com
triggerUid

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

4034124084959907503

アドオン イベント

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

インストール

シンプル
authMode

ScriptApp.AuthMode 列挙型の値。

FULL

時間ベースのイベント

時間駆動トリガー(クロック トリガーとも呼ばれます)を使用すると、特定の時刻または一定の間隔でスクリプトを実行できます。

データドリブン(インストール可能
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