シンプルなトリガーとインストール可能なトリガーを使用すると、特定のイベントが発生したときに 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 |
LIMITED |
source |
スクリプトがバインドされている Google スプレッドシート ファイルを表す Spreadsheet |
triggerUid |
このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。 4034124084959907503 |
user |
アクティブなユーザーを表す amin@example.com |
変更(installable) |
|
---|---|
authMode |
FULL |
changeType |
変更のタイプ( INSERT_ROW |
source |
スクリプトがバインドされている Google スプレッドシート ファイルを表す
Spreadsheet |
triggerUid |
このイベントを生成したトリガーの ID。 4034124084959907503 |
user |
アクティブなユーザーを表す amin@example.com |
編集(シンプルかつインストール可能)。 |
|
---|---|
authMode |
LIMITED |
oldValue |
編集前のセル値(存在する場合)。編集対象の範囲が 1 つのセルの場合にのみ使用できます。セルに以前のコンテンツがない場合、未定義になります。 1234 |
range |
編集されたセルまたはセル範囲を表す Range |
source |
スクリプトがバインドされている Google スプレッドシート ファイルを表す Spreadsheet |
triggerUid |
このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。 4034124084959907503 |
user |
アクティブ ユーザーを表す amin@example.com |
value |
編集後の新しいセル値。編集対象の範囲が単一セルの場合にのみ使用できます。 10 |
フォームの送信(installable) |
|
---|---|
authMode |
FULL |
namedValues |
フォーム送信の問題の名前と値を含むオブジェクト。 { 'First Name': ['Jane'], 'Timestamp': ['6/7/2015 20:54:13'], 'Last Name': ['Doe'] } |
range |
編集されたセルまたはセル範囲を表す Range |
triggerUid |
このイベントを生成したトリガーの ID。 4034124084959907503 |
values |
スプレッドシートに表示されているのと同じ順序の値を含む配列。 ['2015/05/04 15:00', 'amin@example.com', 'Bob', '27', 'Bill', '28', 'Susan', '25'] |
Google ドキュメントのイベント
トリガーを使用すると、ユーザーがドキュメントを開いたときに Google ドキュメントが応答できます。
開く(シンプルかつインストール可能)。 |
|
---|---|
authMode |
LIMITED |
source |
スクリプトがバインドされている Google ドキュメント ファイルを表す Document |
triggerUid |
このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。 4034124084959907503 |
user |
アクティブなユーザーを表す amin@example.com |
Google スライドのイベント
トリガーを使用すると、ユーザーがプレゼンテーションを開いたときに Google スライドが応答できます。
開く(シンプル) |
|
---|---|
authMode |
LIMITED |
source |
スクリプトがバインドされている Google スライド ファイルを表す Presentation |
user |
アクティブ ユーザーを表す amin@example.com |
Google フォームのイベント
Google フォーム固有のトリガーを使用すると、ユーザーがフォームを編集したときや回答を送信したときにスクリプトを実行できます。
開く*(シンプルかつインストール可能) |
|
---|---|
authMode |
LIMITED |
source |
スクリプトがバインドされている Google フォーム ファイルを表す Form |
triggerUid |
このイベントを生成したトリガーの ID(インストール可能なトリガーのみ)。 4034124084959907503 |
user |
アクティブ ユーザーを表す amin@example.com |
* このイベントは、ユーザーが回答のためにフォームを開いたときに発生しますが、編集者がフォームを開いて変更を行ったときに発生します。
フォームの送信(installable) |
|
---|---|
authMode |
FULL |
response |
フォーム全体に対するユーザーの回答を表す FormResponse |
source |
スクリプトがバインドされている Google フォーム ファイルを表す Form |
triggerUid |
このイベントを生成したトリガーの ID。 4034124084959907503 |
Google カレンダーの予定
カレンダー トリガーは、ユーザーのカレンダーの予定が更新(作成、編集、削除)されると呼び出されます。
これらのトリガーでは、どのイベントが変更されたか、どのように変更されたかはわかりません。代わりに、カレンダーの最新の変更を取得するために、コードで増分同期オペレーションを行う必要があることを示しています。この手順の詳細については、Calendar API のリソースの同期ガイドをご覧ください。
Apps Script でカレンダーと同期するには、次の操作を行います。
- スクリプト プロジェクトでカレンダー拡張サービスを有効にします。組み込みのカレンダー サービスでは、このワークフローでは不十分です。
- 同期するカレンダーを決定します。このようなカレンダーごとに、Calendar Advanced Service の Events.list() メソッドを使用して初期同期オペレーションを実行します。
- 最初の同期の結果として、そのカレンダーの
nextSyncToken
が返されます。このトークンを後で使用するために保存してください。 - カレンダー イベントの変更を示す Apps Script の
EventUpdated
トリガーが起動したら、保存されたnextSyncToken
を使用して、影響を受けるカレンダーの増分同期を実行します。これは基本的に別の Events.list() リクエストですが、nextSyncToken
を指定すると、前回の同期以降に変更されたイベントのみにレスポンスが制限されます。 - 同期のレスポンスを確認して、更新されたイベントを把握し、コードが適切に応答するようにします。たとえば、変更の記録、スプレッドシートの更新、メール通知の送信などの操作を行うことができます。
- そのカレンダー用に保存した
nextSyncToken
を、増分同期リクエストで返されたものに変更します。これにより、次の同期オペレーションでは最新の変更のみが返されます。
EventUpdated(インストール可能) |
|
---|---|
authMode |
FULL |
calendarId |
イベントの更新が発生したカレンダーの文字列 ID。 susan@example.com |
triggerUid |
このイベントを生成したトリガーの ID。 4034124084959907503 |
Google Workspace アドオンのイベント
onInstall()
トリガーは、ユーザーがアドオンをインストールすると自動的に実行されます。
インストール(シンプル) |
|
---|---|
authMode |
FULL |
Google Chat アプリのイベント
Google Chat のイベント オブジェクトについては、Google Chat アプリでの操作を受信して応答するをご覧ください。
時間主導型イベント
時間ドリブン トリガー(クロックトリガーとも呼ばれます)を使用すると、スクリプトを特定の時間または繰り返しの間隔で実行できます。
時間主導型(インストール可能) | |
---|---|
authMode |
FULL |
day-of-month |
このプロパティ名にはダッシュが含まれているため、ドット表記ではなく 31 |
day-of-week |
このプロパティ名にはダッシュが含まれているため、ドット表記ではなく 7 |
hour |
23 |
minute |
59 |
month |
12 |
second |
59 |
timezone |
タイムゾーン。 UTC |
triggerUid |
このイベントを生成したトリガーの ID。 4034124084959907503 |
week-of-year |
このプロパティ名にはダッシュが含まれているため、ドット表記ではなく 52 |
year |
年です。 2015 |