ajike switch

意外とカンタン!Googleフォームの回答をメールアドレスに送る方法まとめ

こんにちは!フロントエンドエンジニアの市川です。
少し前に、上司の木根がGoogle Apps Script(以下GAS)についての記事を書いていました。
チャットワークとGoogle Apps Scriptで定期botを自動化する
今回は、GASを使った、Googleフォームのちょっと便利な使い方についてご紹介したいと思います。

Googleフォームとは?

企業のWebサイトなどでよーく見かけるお問い合わせフォーム。フロントの知識しかない私にとって、フォームを作るのはハードルの高いものだと思っていました…。ですが、「Googleフォーム」というサービスを使うと、プログラミングやサーバの知識がなくても簡単にお問い合わせやアンケートなどに使えるフォームが作成できちゃうんです!例として作ったフォームが以下になります。
ichikawa_01

Googleフォームの作成手順については今回の本題からそれるので割愛しますが、以下のページなど参考にしてみて下さい。
Googleフォームの作成
とはいえ、直感的なUIなのでスムーズに作成できてしまうと思います。

フォームに送られた回答の行方

Googleフォームに送られた回答は、新規に作られるスプレッドシートに自動で蓄積されていきます。
ichikawa_02
また、シートに回答が追加されたらメールに通知を送る設定もできますが、
「シートが更新されました」という簡素なもので、回答の内容までは通知してくれません…。
そこで、今回の本題!GASを使って、フォームに送られた回答の内容も
指定のメールアドレスに送られるようカスタマイズしてみましょう。

カスタマイズの手順

まずはフォームの作成画面に移動して、上部のメニューからツール > スクリプト エディアを選択します。
以下のような画面が表示されるので、「空のプロジェクト」を選択してください。
ichikawa_03

functoin myFunction()という、空の関数が記述されたファイルが作られたと思います。
このファイルに、今回カスタマイズ用のスクリプトを記述していきます。
以下がサンプルのスクリプトです。メールアドレス部分は任意のものに変更してください。

function submitForm(e){
  var itemResponses = e.response.getItemResponses();
  var message = '';
  for (var i = 0; i < itemResponses.length; i++) {
    var itemResponse = itemResponses[i];
    var question = itemResponse.getItem().getTitle();
    var answer = itemResponse.getResponse();
    message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
  }
  var address = 'test@hoge.jp';
  var title = '[お問い合わせを受信しました]';
  var content = '下記の内容で、お問い合わせを受信しました。\n\n' + message;
  GmailApp.sendEmail(address, title, content);
}

参考:Googleフォームで自動返信システムをサクッとつくる

記述が終わったら、上部メニューから リソース > 現在のプロジェクトのトリガーを選択してください。
プロジェクト名は「お問い合わせフォーム」など任意のものを記入します。
保存するとトリガーの設定画面に移るので、以下のように指定されているか確認した後、更に保存します。
ichikawa_04
初回のみ認証画面が出るので、”認証する”ボタンを押します。これで準備完了です。
テストでフォームから回答してみてください。
スクリプトに記述したアドレスに、以下のようなメールが送られたら成功です!
ichikawa_05

最後に

今回は、任意のアドレスにGoogleフォームの内容を送るGASを紹介しました。
もう少し踏み込むと、フォームの回答者に自動返信を行ったり、予約システムまで
作れてしまうみたいです…!色々なことができて、奥が深そうですね…

社内ではスケジュールやタスクの管理にスプレッドシートをよく使うので、
GASを使って効率化できたりしないかな〜と考えてます。
新たな使い方を発見したらまたご紹介したいと思います。

以上、市川でした!

servi

ajike switchの更新をメールでお伝えします!

8年以上ajikeが蓄積したデザイン思考とUXデザインの知見を発信し続けるブログ<ajike switch>の更新情報を無料でメールにてお知らせ致します。

×