【テンプレートあり】メールで期限を通知する方法

Gmail

期限のある業務をスプレッドシートで管理していれば期限が自動で通知されると便利ですよね。

例えば
  • 薬品の有効期限
  • 医療機器の点検期限
  • 在庫の使用期限
  • スタッフの資格更新期限
  • 許可証の更新期限

今回は、調剤薬局内の期限を通知する簡単な仕組みを作りました。

本記事では、スプレッドシートで管理している期限に対して、メールに通知を送る方法を解説します。

この記事でわかること

GASを使って、スプレッドシートの期限をメールで自動通知する方法

使用するツールと準備

準備するもの
  • Google アカウント
  • Google スプレッドシート(Google アカウントがあれば誰でも使用できます)
  • Google Apps Script(Google アカウントがあれば誰でも使用できます)

これらのツールを準備し、Google スプレッドシートでデータを管理する準備を整えましょう。

スプレッドシートの設定

次に、スプレッドシートで通知したい内容と期限の表を作成します。

  • スプレッドシートを開き、期限を管理したいデータを入力します。
  • 「日付」や「項目名」など、必要な項目を1行目に追加します。

すでにエクセルで管理をしている場合はスプレッドシートに簡単に変更できます

Google Apps Scriptで通知設定

ここでは、Google Apps Scriptを使用して通知を設定します。

GASを初めて使う人は以下のブログを参考にしてください。使い方は簡単です

  1. スプレッドシートの「拡張機能」から「Apps Script」を開きます。
  2. 以下のコードをコピーして貼り付けます。
  3. 貼り付け後、以下の行を編集してください。
編集箇所

・your-email@example.com → 通知したいメールアドレスに書き換え

function sendReminderEmails() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var today = new Date();

  for (var i = 1; i < data.length; i++) {
    var dueDate = new Date(data[i][0]);            // A列: 期限日
    var daysBefore = parseInt(data[i][1], 10);     // B列: 通知何日前
    var item = data[i][2];                         // C列: 項目名
    var person = data[i][5];                       // F列: 担当者名
    var note = data[i][6];                         // G列: 備考

    // 通知開始日を計算
    var notifyStart = new Date(dueDate);
    notifyStart.setDate(dueDate.getDate() - daysBefore);

    // 通知するか判定
    var shouldNotify = today >= notifyStart && today <= dueDate;

    if (shouldNotify) {
      var subject = "【リマインダー】" + item + " の期限が近づいています";
      var message =
        "担当者: " + (person || "(未指定)") + "\n" +
        "項目: " + item + "\n" +
        "期限: " + Utilities.formatDate(dueDate, Session.getScriptTimeZone(), "yyyy/MM/dd") + "\n\n" +
        (note ? "備考: " + note + "\n\n" : "") +
        "お早めの対応をお願いします。";

      var email = "your-email@example.com";//通知したいメールアドレスに書き換え
      MailApp.sendEmail(email, subject, message);

      // D列: 通知ステータス
      sheet.getRange(i + 1, 4).setValue("通知済み");

      // E列: 通知日
      sheet.getRange(i + 1, 5).setValue(today);
    } else {
      sheet.getRange(i + 1, 4).setValue("未通知");
      sheet.getRange(i + 1, 5).setValue("");
    }
  }
}

毎日実行されるための設定

トリガーを設定し、毎日通知が行われるようにします

  • 「時計」アイコンをクリックし、右下の「トリガーを追加」を選択します。
  • 「sendReminderEmails」を選択し、時間ベースのトリガーを設定します。

メールで通知するメリット

カレンダーに書き込むことでも期限の管理はすることができます。

しかし、データでまとめてメールで通知するのは以下のメリットがあります。

  • メールは毎日チェックするので確認漏れがなくなる
  • 莫大なデータも管理することができる
  • 数年後先の期限を必ず通知されるので不安がない
  • 管理業務が効率化され、他の重要な業務に集中できる

私が使っている実例として、施設患者の介護保険証の期限管理をしてます

2024年10月14日 | GAS剤師
薬局業務DX化への挑戦
【手順公開!】介護保険証の期限のメール通知シ/

まとめ:自動メール通知による業務効率化をはじめよう

毎朝、重要な期限だけを自動でメールで把握できる仕組みは、業務の負担を大きく減らしてくれます。

Google Apps Scriptを活用することで、特別なプログラミングの知識がなくても、誰でも「使える自動通知システム」を構築できます。

今後は、通知条件を柔軟に変更したり、複数人への通知や、Googleカレンダーとの連携など、さらに幅広い自動化の応用が可能です。

これらをうまく組み合わせることで、日々の業務をさらに快適に、そして効率よく進めることができます。

この仕組みをまだ試していない方は、ぜひ一度導入してみてください。