初心者でも簡単!GASでGoogleフォーム送信時のトリガーを設定する方法

GASでGoogleフォームの送信時にトリガーを設定する方法を知りたいけど、どうやって始めればいいのか全然わからないんだよね…
猫男
猫男
catman
catman
なるほど。GASを使ってGoogleフォームの送信時のトリガーを設定するのは、初めての人には少しハードルが高いかもしれない。ただ、うまく設定できれば非常に強力だ。catmanが簡潔に説明しよう。

 

gas フォーム トリガー

 

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エディタを開いて、時計マークの「トリガー」ボタンをクリック。

gas フォーム トリガー

「トリガーを追加」へと進んで、以下のように設定しよう。

項目 設定値
実行する関数 フォーム送信時に実行したい関数名(例:onFormSubmit
実行するデプロイ Head(通常そのままでOK)
イベントのソース フォームから
イベントのタイプ フォーム送信時

gas フォーム トリガー

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
catman
いいぞ、その調子だ。このスキルでますます仕事が素早くスマートになるはずだ。