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

コピペでGAS

この記事でイメージを掴んで、健康観察の機能を作っていただけたらと思います。

例えば、こんなフォームを考えてみます。

質問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] さらに

下記の記事では学校用で使える全プログラムが入っています。
ご利用を考える場合には、お問合せからご連絡ください。

#フォーム #健康観察

[7] 参考サイト紹介

コメント

タイトルとURLをコピーしました