イベント オブジェクト

シンプルなトリガーインストール可能なトリガーを使用すると、特定のイベントが発生したときに 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

スクリプトがバインドされている 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

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

Spreadsheet
triggerUid

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

4034124084959907503
user

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

amin@example.com

編集

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

ScriptApp.AuthMode 列挙型の値。

LIMITED
oldValue

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

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 ドキュメントが応答できます。

開く

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

スクリプトがバインドされている 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