初心者でも簡単!GASでGoogleフォーム送信時のトリガーを設定する方法
GASでGoogleフォームの送信時にトリガーを設定する方法を知りたいけど、どうやって始めればいいのか全然わからないんだよね…

猫男

catman
なるほど。GASを使ってGoogleフォームの送信時のトリガーを設定するのは、初めての人には少しハードルが高いかもしれない。ただ、うまく設定できれば非常に強力だ。catmanが簡潔に説明しよう。
GASで送信時のトリガーを機能させる方法
まずはトリガーで実行させる関数を作成するぞ。この関数内に自動化したい処理を書く。
function onFormSubmit(e) {
const response = e.response.getItemResponses();
response.forEach(function(itemResponse) {
Logger.log('質問: ' + itemResponse.getItem().getTitle());
Logger.log('回答: ' + itemResponse.getResponse());
});
}
このコードは送信された情報をログに出力する簡単な例だ。
「onFormSubmit」が「送信時のトリガー」として実行されるように設定されている。
関数内で取得できる「e」はイベントオブジェクトで、フォームの送信時の情報を提供する。
GASでGoogleフォームのトリガーを設定する方法
オッケー、スクリプト作成おつかれさま。
でもな、これだけじゃトリガーは発動されないんだ。トリガーの設定をしないといけないんだな。
さて、Googleフォームの送信時のトリガー設定方法は以下の2つだ。
どっちでも好きな方を選んでくれ。
1. 手動でトリガーを設定する
まずは手動のゴリゴリ派の方法な。
GASエディタを開いて、時計マークの「トリガー」ボタンをクリック。
「トリガーを追加」へと進んで、以下のように設定しよう。
項目 | 設定値 |
---|---|
実行する関数 | フォーム送信時に実行したい関数名(例:onFormSubmit ) |
実行するデプロイ | Head(通常そのままでOK) |
イベントのソース | フォームから |
イベントのタイプ | フォーム送信時 |
2. スクリプトでトリガーを設定する
マウスを一クリックでも減らしたい、なんて怠惰なやつはスクリプトでトリガーを設定する方法がおすすめだ。
function createSubmitTrigger() {
const form = FormApp.openById('YOUR_FORM_ID');
ScriptApp.newTrigger('onFormSubmit')
.forForm(form)
.onFormSubmit()
.create();
}
‘YOUR_FORM_ID’はフォームのIDに置き換えてくれ。
このcreateSubmitTrigger関数を実行すれば、onFormSubmitという名前の関数をフォーム送信時のトリガーで実行できるはずだ。
練習問題
以下のシナリオを考えてみよう。「Googleフォームの送信時に、送信されたメールアドレスに確認メールを送る」
このシナリオで送信時のトリガーを利用するには、どのような関数を作成すればいいだろうか?
練習問題の解答・解説
function sendConfirmationEmail(e) {
const responses = e.response.getItemResponses();
let email = '';
responses.forEach(function(itemResponse) {
if (itemResponse.getItem().getTitle() === 'メールアドレス') {
email = itemResponse.getResponse();
}
});
if(email) {
MailApp.sendEmail(email, 'フォームを送信しました', 'ご提出ありがとうございました。');
}
}
この関数「sendConfirmationEmail」は、フォーム送信時に呼び出される。送信された情報の中から「メールアドレス」という質問に対する回答を取得し、そのアドレスに確認メールを送信する。
MailApp.sendEmailを使えば、入力されたメールアドレス宛にメールを送信できる。
分かってきたよ!これでフォームのトリガーも設定できる自信がついた!

猫男

catman
いいぞ、その調子だ。このスキルでますます仕事が素早くスマートになるはずだ。