【GAS】Googleフォームでテストの結果によって自動返信する方法
Googleフォームでテストを実施すると、「会社名」・「氏名」の記述式項目もテストに入ってしまって採点対象になってしまいます。
そうすると、個別で記述式の回答を送信しないといけないのでとても面倒です。
そんな時は、テスト結果によってメールの送信内容を変更する方法をご紹介します。
Googleフォームでテストを作成
Googleフォームからフォームを作成します。
テスト設定の有効化
テストの設定を有効にします。
右上の歯車から設定画面を表示し、「テスト」→「テストにする」を選択します。
テスト問題の作成
問題の作成は主に、「ラジオボタン」・「チェックボックス」で作成します。
メールアドレスの収集設定を有効にします。有効にすると、最初にメールアドレスを記入するフォームが生成されます。
フィールドは、「名前」・「問題」を作成しました。
解答集の作成
テスト問題の解答を設定します。左下の「解答集を作成」を選択し
「正解」と「点数」を記入し、完了を押します。
「回答に対するフィードバックを追加」を選択すると
このように「不正解」・「正解」時のフィードバックを入力できます。
これらはリンク、Youtubeの動画を選択可能です。
スプレッドシートとの連携
「回答」から新しいスプレッドシートを作成します。
作成されました。
スクリプトの設定
今回は、テストの結果によって返信メールの内容を変更するので
「1+1=2」が正解・不正解の場合で返信内容を変えていきます。
つまり、スコアが「1/1」か「0/1」のいづれかの場合です。スプレッドシートの画面に移動し
ツールから「スクリプトエディタ」を選択します。
コードの例
function TestResultSendEmail(e){
//フォームの回答を取得
//スプレッドシートのカラム順
const [TimeStamp, Score, Name, Content, MailAdress] = e.values;
//メールの設定
let to = MailAdress;
let subject = "テスト受講ありがとうございました";
let options = {
name: 'テスト事務局'
}
let ScoreNumber = Score.replace(/\/.*[0-9]/g, "");
let body = ""
body += `${Name}様\n\n`;
body += 'お世話になっております。○○です。\n';
body += 'テスト結果をご報告いたします。\n\n';
body += `スコアは${Score}です。\n`;
if (ScoreNumber >= 1){
body += "「合格」です。";
}else{
body += "「不合格」です。";
}
//メールの送信
MailApp.sendEmail(
to,
subject,
body,
options
);
}
こちらのコードをコピペしてください。
スコアの正規表現
const [TimeStamp, Score, Name, Content, MailAdress] = e.values;
で取得されるスコアは「1/1」という形で表現されています。
点数だけ知りたいので
let ScoreNumber = Score.replace(/\/.*[0-9]/g, "");
/以降の数字を削除しています。
これで点数のみを取得しています。
if (ScoreNumber >= 1){
body += "「合格」です。";
}else{
body += "「不合格」です。";
}
点数で分岐させています。
問題数が増えても、任意の点数で「合格」・「不合格」の通知が可能です。
トリガーの設定
コードを作成後、トリガーの設定を行います。
設定方法についてはこちらをご参照ください。
テスト送信
作成したフォームから、テスト送信してみます。
送信しました。メールを確認してみます。
無事、合格になっています。
このようにメールで合否を送れれば個別対応する必要が無いので楽になります。
まとめ
いかがでしたか?今後WEBテストを実施する機会が増えてくると思いますので、是非試してみてください!
おすすめのUdemy学習動画
ビジネスパーソンに贈る業務効率化大全 〜Google Apps Scriptによる業務の自動化〜
おすすめ学習書籍
コメント