対象
- すべての社会人
- 業務を効率化したい
- 簡単なアンケートフォームを作成したい
概要
働いていると何かとアンケートや集計を取りたい、、、、そんなことありますよね。
そんな時に手軽に使えるのってGoogleフォームだと思います!
Googleフォームってリンクでも送れるし、webサイトにも埋め込めるしめちゃめちゃ便利ですよね!!!
けどフォームを送信して何も帰ってこなかったら本当に送信できたのかな???
と送信者が不安になります。
ちょちょっとコードを書いて自動化しちゃいましょう!
Google Apps Script(GAS)って??
Google Apps ScriptとはGoogleが開発しているプログラミング言語です。
ブラウザ上でかけるJavaScriptベースでかけるので言語経験がある方には非常に使いやすく簡単な言語になっています!
では早速やっていきましょーう!
適当にフォームを作成する
今回は簡単なアンケートフォームを作成しましょう!!
まずはGoogleアカウントからドライブに入っていきましょう!!
新規→Googleフォームをクリック!!
作り方はめっちゃ簡単なので直感的にやればわかると思います。
ちなみに選択するボタンはラジオボタンってやつでできます。
いろいろ試して見ましょう!!
Google Apps Scriptを実装していく
こんな感じになってますね〜
これがGASをかけるエディタです!
もうここにJavaScriptベースで書いていけます。
環境構築せずにブラウザで起動できるので本当に便利ですね!
とりあえずmyFunctionは消して
コードを書き換えましょう!
function sendEmail(e) {
var itemResponses = e.response.getItemResponses();
var name = itemResponses[0].getResponse();
var email = itemResponses[1].getResponse();
var questionnaire = itemResponses[2].getResponse();
var to = email;
var subject = "イベントの申し込みの確認メール";
var body = "\
${name}様\n\n\
アンケートにご協力していただきありがとうございます。\n\
以下のアンケート結果で承りました。\n\n\
アンケート結果: ${questionnaire}".replace("${name}", name).replace("${questionnaire}", questionnaire);
GmailApp.sendEmail(to, subject, body);
}
説明していきます。
まずfunction sendEmailで関数を定義しています引数の(e)はeventのeの略です。
これでイベントを取得できます。
varは変数ですね。GASはletじゃなくてvarで書くみたいです。
まずitemResponsesでイベントの配列を取得しています。getItemResponses()はGoogleが提供しているメソッドです。
その下は配列から名前、メールアドレス、アンケート結果をそれぞれ取得している感じですね。
フォームの上からインデックス番号で取得できます。
そして一番下でGmailApp.sendEmail(to, subject, body)で関数を実行しています。
引数は左から、宛先、タイトル、本文です。
toは宛先なのでemailを代入
subjectは適当に入力しましょう。
bodyのとこに結構暗号が書いてありますね笑
\nは改行を意味する特殊文字です。
さらにエディタ上で改行する場合は\をもう一つ追加します。
最後にreplaceメソッドを使ってますね。
これはJavaScript使ってる人ならわかりやすいかもしれないですが、簡単にいうと第一引数を第2引数に置き換えるということです。
つまり${name}をnameに置き換える。
nameはitemResponsesの配列の0番目を取得しているので、お名前の記入欄に書いた文字が代入されてます。
これで準備はおっけい!!!
トリガーを実行する
コードを書いただけでは、GASは実行されません。
メニューボタンのところからトリガーを選択しましょう!
実行する関数はsendEmailですね。さっき書いたコードのことです。
イベントのソースは今回はGoogleフォームからなのでフォームからを選択
イベントの選択はフォーム送信時を選んでください(これで送信したと同時にトリガーが発動されます)
エラー通知に関してはエラーの通知なので、取りたいタイミングで任意で選んでください!
これで完成でーす!!!
実行
メールアドレスは送信したいメールアドレスを選択してください。(試す場合は自分のメールアドレスを)
自分は有村架純が好きなので選択します。
番外編
フォーム作ったら自分で使っててもつまんないですよね笑
リンクで送るには
送信を押してリンクを取得します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<iframe
src="https://docs.google.com/forms/d/e/1FAIpQLSd-TvhoxPdyfcuEzp6c-VbfXbDlHWutI1MxN0eVDkh6Pfdq2w/viewform?embedded=true"
width="640" height="824" frameborder="0" marginheight="0" marginwidth="0">読み込んでいます…</iframe>
</body>
</html>
お疲れ様でした!!!!