非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【GAS】Googleフォームの回答時にGASでイベントを発生させる方法

   

Googleフォームを使うと、簡単にデータを収集できますが、その回答のタイミングでGoogle Apps Script(GAS)でイベントを発生させ、スプレッドシートに独自の配置に記録する等の処理をすることも可能です。本記事では、Googleフォームの送信時にスプレッドシートへ自動追加し、イベントが発火するように設定する方法を解説します。

1. Googleフォームの回答をスプレッドシートに自動追加

まず、Googleドライブ上にGoogleフォームを作成します。

まずば、こんな感じでフォームを完成させておきます。

 

「回答」タブを開くと以下のような画面になり、そこにあるスプレッドシートのアイコンをクリックします。

 

以下のような画面が現れるので、「新しいスプレッドシートを作成」を選びましょう。もちろん既にシートが用意されているのであれば既存のシートを選択でもOKです。

 

この設定を行うことで、フォームの回答がスプレッドシートに自動的に記録されます。準備はここまで。

2. function onFormSubmit(e) でイベント発火

フォームが送信される(=スプレッドシートにデータが追加される)タイミングで処理を実行するには、Google Apps Script を使います。

スプレッドシートの「拡張機能」→「Apps Script」を開きましょう。

 

コードエディタに以下のコードを入力しましょう。

このスクリプトは、フォーム送信時に onFormSubmit イベントが発火し任意の処理を行います。

function onFormSubmit(e) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var response = e.values; // フォームの回答データ
  //ここに処理を書く
}
 

 

3. スクリプトにトリガーを設定

トリガーを設定しフォーム送信時に自動でスクリプトが動くようにします。

左側の時計アイコン(トリガー)をクリックします。

 

左下の青いボタン「トリガーを追加」を選択」をクリックすると以下の画面が現れます。設定を以下のように変更しましょう。保存し、アクセス権限の承認が求められたら許可します。

  • 実行する関数名:onFormSubmit
  • イベントの種類:フォーム送信時

 

これで、フォームが送信されるたびに onFormSubmit(e) が実行されるようになります。

 

4. まとめ

  • Googleフォームの回答をスプレッドシートにリンク
  • onFormSubmit(e) を使って、フォーム送信時に処理を実行
  • Apps Script にトリガーを設定し、自動実行を有効化

これで、Googleフォームの回答をスプレッドシートに自動追加し、イベントが正しく発火する環境を構築できます。

 

スポンサーリンク

 - Google Apps Script