イベント オブジェクト

シンプルなトリガーインストール可能なトリガーを使用すると、特定のイベントが発生した場合に 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 スプレッドシート固有のさまざまなトリガーを使用すると、スクリプトでスプレッドシート内のユーザーのアクションに応答できます。

開く

simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

スクリプトがバインドされている Google スプレッドシート ファイルを表す 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

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com

編集

simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
oldValue

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

1234
range

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

Range
source

スクリプトがバインドされている Google スプレッドシート ファイルを表す 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 ドキュメントのイベント

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

開く

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

開く

*(simpleinstallable
authMode

ScriptApp.AuthMode 列挙型の値。

LIMITED
source

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

Form
triggerUid

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

4034124084959907503
user

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

amin@example.com

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

フォーム送信

installable
authMode

ScriptApp.AuthMode 列挙型の値。

FULL
response

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

FormResponse
source

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

Form
triggerUid

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

4034124084959907503

Google カレンダーの予定

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

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

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

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

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