見出し画像

Google フォーム 条件付き自動メール送信/健康観察/◯℃以上/異常値検出/if( )

プログラムが増えていくと、ソースが自分になっていく感じが嬉しい今日この頃。

最近、学校界隈は休校やら学年閉鎖やら学級閉鎖やら。
何かと、オンラインの必要性が出ているみたいですね。

それぞれの学校で、ICTを推進してきた先生は、また大変な時期ですよね。

こうならないと動かない学校なんて、おっと😎

さて、最近、フォームをもらって、それに対する自動メールの問い合わせがあったりしたので、

ここで行ってたプログラムを書いていきたいと思います。

​って思ったけど、こちらの記事がめちゃくちゃわかりやすいので、こちらをみてください🤣笑

んで、ここからは追加をしていきます。
例えば、学校やそれ以外の団体やイベントでも、体温が高いとか濃厚接触者とか、異常値があった時にメールが欲しいですよね。
そんな時にはこんな感じで作ってみましょう!

例えば、こんなフォーム

質問1 クラス(あえてプルダウンで)
質問2 出席番号(あえてプルダウンで)
質問3 名前(記述でもプルダウンでもなんでも)
質問4 体温(記述、回答の検証から数値・数字に設定)
質問5 濃厚接触の有無(ラジオボタン、はい・いいえ)
質問6 体調不良の詳細(チェックボタン、任意)
質問7 その他何か記述(記述式でも段落でも)

function helthCheck(e) {//メイン関数
var values = e.values;//フォームの回答を取得
var stamp = values[0];//タイムスタンプを取得
var section = values[1];//クラスを取得
var number = values[2];//出席番号を取得
var name = values[3];//名前を取得
var temperature = values[4];//体温を取得
var contact = values[5];//濃厚接触者などの有無を取得
var detail = values[6];//詳細な体調不良を取得
var text = values[7];//その他の記述
let To = '';
 if (temperature >= 37 ||contact == 'はい' ||text) {
   if (section=='11') {
     To = '   ' //送りたい先生のメールアドレス、例えば、11の担任のメールアドレスを入れる
   } else if (section=='12') {
     To = 'ここ'
   } else if (section=='13') {
     To = 'ここ'
   }else if (section=='21') {
     To = 'ここ'
   }else if (section=='22') {
     To = 'ここ'
   }else if (section=='23') {
     To = 'ここ'
   }else if (section=='31') {
     To = 'ここ'
   }else if (section=='32') {
     To = 'ここ'
   }else if (section=='33') {
     To = 'ここ'
   }
 let Options = {
 //必要ない場合は、//を前に入れてコメントアウトしてください。
   'cc':'ここ', //ここでCCを設定、学年主任や養護教諭、複数設定したい場合は半角カンマで区切る
   'bcc':'ここ' //ここでbccを設定、学年主任や養護教諭、複数設定したい場合は半角カンマで区切る
};
// 自動返信メール件名
let Subject = '確認対象生徒'//こちらはメールの件名になります
// 自動返信メール本文
let Body =
'健康確認アンケートで確認対象生徒が出ました。生徒に連絡を取り、状況を確認して下さい。'+'\n'+ //こちらはメールの本文です。
'【氏名】:' + name + '\n'+
'【クラス】:' + section + '\n'+
'【番号】:' + number + '\n'+
'【体温】:' + temperature + '\n'+
'【濃厚接触者】:' + contact + '\n'+
'【体調】:' + detail + '\n'+
'【その他】:'+ text + '\n'+
'【フォーム送信日時】:' + stamp;
   GmailApp.sendEmail(To, Subject, Body, Options); ;
 }

解説をしておくと。

if (temperature >= 37 ||contact == 'はい' ||text)

このifでメールを送るかどうかを決めています。

tempreatureの中に、フォームで入力された体温が入っているので、これが指定の温度よりも高いどうかを確認しています。
'もし'高ければ、メールを送ります。

|| contact  == 'はい' 

もちろん、37.4とか少数まで設定可能です。
ここで数値で判断したかったので、フォームの回答の検証で数値に設定しておいた方がいいんですよ。

では、濃厚接触者がいるかどうかをラジオボタンで、はい・いいえを聞いています。
'もし'、はいならばメールを送ります。

||

は、OR(∪、または、論理和)の意味なんです。
ちなみに、AND(∩、かつ、論理積)は、&&です。

最後に、

|| text

です。

よくフォームの最後に、何かコメントや問い合わせは??
と入れることが多いですよね。
今回は、textという変数にその入力された内容(多くは文字列になると思いますが)が入っています。

'もし'、ここになんらかの入力があれば(真ならば)メールを送るというようになっています。

detail に中身がある!よしメールを送るぞ!

という感じです。
ちなみにその逆、中身がないなら(detailの否定(!)が真ならば)起動するぞ!!にしたい場合は、変数の前に!を入れます。

|| !detail

こんな感じになります。

んで、

その中のもう一つのifで、クラスごとに送る先を決められます!
(クラスで分ける必要なければ入りません。)

これは、

else if()

で増やせるので、たくさん増やしたければ追加してくださーい。

ぜひ試してみてください!😆

あ、トリガー設定も忘れずに!

こんな感じで設定します!

最後の許可をクリックのところが見切れちゃいましたけど、許してください。

何かと0から1を作るのは大変だと思います。学校はどこも似たような問題課題に対応していると思います。それなのに、先生って自分だけで頑張ろうとするんですよね。ボクの資料やnoteが1になって、学校ごとの現状に合わせてカスタムしていただければと思います‼️