この記事でイメージを掴んで、健康観察の機能を作っていただけたらと思います。
例えば、こんなフォームを考えてみます。
質問1 クラス(あえてプルダウンで)
質問2 出席番号(あえてプルダウンで)
質問3 名前(記述でもプルダウンでもなんでも)
質問4 体温(記述、回答の検証から数値・数字に設定)
質問5 濃厚接触の有無(ラジオボタン、はい・いいえ)
質問6 体調不良の詳細(チェックボタン、任意)
質問7 その他何か記述(記述式でも段落でも)
そして、フォームが送信されたら、↓のようなメールが届くようにします。
[1] 準備
下記のURLから フォーム を新規作成してください!
Google Forms: Sign-in Access Google Forms with a personal Google account or Google forms.new
質問項目は下記のようにしてください!
質問1 クラス(あえてプルダウンで。今回は、11,12,13の3つを用意してください)
質問2 出席番号(あえてプルダウンで)
質問3 名前(記述でもプルダウンでもなんでも)
質問4 体温(記述、回答の検証から数値・数字に設定)
質問5 濃厚接触の有無(ラジオボタン、はい・いいえ)
質問6 体調不良の詳細(チェックボタン、任意)
質問7 その他何か記述(記述式でも段落でも)
次に、設定から メールアドレスを収集 を オン にしましょう!
そして、回答 の スプレッドシートにリンク をクリックして、回答を収集する スプレッドシート を作っておきましょう!
この スプレッドシート にスクリプトを入れていきます!
[2] スクリプト
これらの回答を取得して、メールを送るためのプログラムとして、次のような感じで考えました。
下記のスクリプトをコピーしてください!
function healthCheck(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 = 'ここ'
}
}
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);;
}
下記のように貼り付けたら、💾(保存)をクリックしましょう!
そしたら、一度 ▶️(実行)をクリックして、権限を承認しておきます!
この時、必ず下記のようなエラーが出ますが、気にしないでください!!
必ず出るエラーになります!
[2-1] 解説 if( )
if (temperature >= 37 ||contact == 'はい' ||text)
この if でメールを送るかどうかを決めています。
tempreature の中に、フォームで入力された体温が入っているので、これが指定の温度よりも高いどうかを確認しています。
‘もし’高ければ、メールを送ります。
|| contact == 'はい'
もちろん、37.4とか少数まで設定可能です。
ここで数値で判断したかったので、フォームの回答の検証で数値に設定しておいた方がいいんですよ。
では、濃厚接触者がいるかどうかをラジオボタンで、はい・いいえを聞いています。
‘もし’、はいならばメールを送ります。
||
は、OR(∪、または、論理和)の意味なんです。
ちなみに、AND(∩、かつ、論理積)は、&&です。
最後に、
|| text
です。
よくフォームの最後に、何かコメントや問い合わせは??
と入れることが多いですよね。
今回は、textという変数にその入力された内容(多くは文字列になると思いますが)が入っています。
‘もし’、ここになんらかの入力があれば(真ならば)メールを送るというようになっています。
detail に中身がある!よしメールを送るぞ!
という感じです。
ちなみにその逆、中身がないなら(detailの否定( ! )が真ならば)起動したい場合は、変数の前に ! を入れます。
|| !detail
こんな感じになります。
[2-2] 解説 else if( )
次に、その中のもう一つの if を追加していく方法です。
クラスごとに送る先を決められます!
(クラスで分ける必要なければ入りません。)
これは、
else if()
で増やせるので、たくさん増やしたければ追加してくださーい。
ぜひ試してみてください!😆
[3] トリガー設定も忘れずに!
最後に、トリガーをフォーム送信時に設定をして試してみましょう!
左側にある⏰(トリガー)をクリック!
右下にある トリガーを追加 をクリックします。
イベントの種類を選択 で フォーム送信時 に変更して保存をします!
また権限の承認が必要になるかと思いますので、許可をしてください!
[4] 実行
それでは、先ほど作成した フォーム を送信してみましょう!
👁(プレビュー)から送信できます!
無事にメールが届きましたか!?
[5] 参考動画
[6] さらに
下記の記事では学校用で使える全プログラムが入っています。
ご利用を考える場合には、お問合せからご連絡ください。
コメント