こんにちは!フロントエンドエンジニアの市川です。
少し前に、上司の木根がGoogle Apps Script(以下GAS)についての記事を書いていました。
→ チャットワークとGoogle Apps Scriptで定期botを自動化する
今回は、GASを使った、Googleフォームのちょっと便利な使い方についてご紹介したいと思います。
Googleフォームとは?
企業のWebサイトなどでよーく見かけるお問い合わせフォーム。フロントの知識しかない私にとって、フォームを作るのはハードルの高いものだと思っていました…。ですが、「Googleフォーム」というサービスを使うと、プログラミングやサーバの知識がなくても簡単にお問い合わせやアンケートなどに使えるフォームが作成できちゃうんです!例として作ったフォームが以下になります。
Googleフォームの作成手順については今回の本題からそれるので割愛しますが、以下のページなど参考にしてみて下さい。
Googleフォームの作成
とはいえ、直感的なUIなのでスムーズに作成できてしまうと思います。
フォームに送られた回答の行方
Googleフォームに送られた回答は、新規に作られるスプレッドシートに自動で蓄積されていきます。
また、シートに回答が追加されたらメールに通知を送る設定もできますが、
「シートが更新されました」という簡素なもので、回答の内容までは通知してくれません…。
そこで、今回の本題!GASを使って、フォームに送られた回答の内容も
指定のメールアドレスに送られるようカスタマイズしてみましょう。
カスタマイズの手順
まずはフォームの作成画面に移動して、上部のメニューからツール > スクリプト エディアを選択します。
以下のような画面が表示されるので、「空のプロジェクト」を選択してください。
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フォームで自動返信システムをサクッとつくる
記述が終わったら、上部メニューから リソース > 現在のプロジェクトのトリガーを選択してください。
プロジェクト名は「お問い合わせフォーム」など任意のものを記入します。
保存するとトリガーの設定画面に移るので、以下のように指定されているか確認した後、更に保存します。
初回のみ認証画面が出るので、”認証する”ボタンを押します。これで準備完了です。
テストでフォームから回答してみてください。
スクリプトに記述したアドレスに、以下のようなメールが送られたら成功です!
最後に
今回は、任意のアドレスにGoogleフォームの内容を送るGASを紹介しました。
もう少し踏み込むと、フォームの回答者に自動返信を行ったり、予約システムまで
作れてしまうみたいです…!色々なことができて、奥が深そうですね…
社内ではスケジュールやタスクの管理にスプレッドシートをよく使うので、
GASを使って効率化できたりしないかな〜と考えてます。
新たな使い方を発見したらまたご紹介したいと思います。
以上、市川でした!