期限のある業務をスプレッドシートで管理していれば、期限が自動で通知されると便利ですよね。
- 薬品の有効期限
- 医療機器の点検期限
- 在庫の使用期限
- スタッフの資格更新期限
- 許可証の更新期限

今回は、調剤薬局で発生する期限を通知する、簡単な仕組みを作りました。
本記事では、スプレッドシートで管理している期限に対して、メールに通知を送る方法を解説します。
- GASを使って、スプレッドシートの期限をメールで自動通知する方法
使用するツールと準備
- Google アカウント
- Google スプレッドシート(Google アカウントがあれば誰でも使用できます)
- Google Apps Script(Google アカウントがあれば誰でも使用できます)
これらのツールを準備し、Google スプレッドシートでデータを管理する準備を整えましょう。
スプレッドシートの設定
- step1スプレッドシートを起動します
今回は、テンプレートの見出しと同じにしてください
- step2見出しに沿って各項目を入力
D列:通知状況 E列:通知日 は空欄のままで

すでにエクセルで管理をしている場合はスプレッドシートに簡単に変更できます
Google Apps Scriptで通知設定
次に、Googssle Apps Scriptを使用して通知を設定します。

GASを初めて使う人は以下のブログを参考にしてください。使い方は簡単です
- step1「Apps Script」を開く
- step2以下のコードをコピーして貼り付ける
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(""); } } }
- step3送信先のメールアドレスを書き換える(”は消さないこと)
送信元はログインしているアカウントのメールアドレスになります
送信先と送信元は同じでも問題ありません - step4スクリプトを保存します
毎日実行されるための設定

トリガーを設定し、毎日スクリプトが行われるようにします
- step1「Apps Script」を開く
- step2「時計」アイコンをクリック
- step3右下の「トリガーを追加」を選択
- step4トリガーの条件を設定します
それぞれの意味を説明すると以下のようになります
この設定では、どのGASの関数を自動で動かすかを選びます。
例ではsendReminderEmails
という関数を選択しており、指定した時間にメール送信処理を実行します。どのバージョンのスクリプトを使うかを指定します。
Head
は最新の編集内容を反映させた状態で実行する設定です。テスト中や開発段階でも、常に最新コードを動かせます。スクリプトを動かす「きっかけ」を設定します。
ここでは「時間主導型」を選択しており、特定の時刻や間隔で自動的に実行されるようにしています。時間主導型の中で、どのような周期で動かすかを指定します。
「日付ベースのタイマー」を選ぶと、毎日または特定の日に実行できます。スクリプトが動く時間帯を設定します。
例では「午前6時〜7時」としており、この時間の間にトリガーが発動します。
テストをしてみる

完成したらテストをして実際にメールが来るか試してみましょう
- step1テスト用のデータを打ち込む
A列期限日 B列:通知何日前 テスト用にテスト日以内にするように設定してください
下記の例だとテスト日は8/2~8/31であれば大丈夫です
- step2実行ボタンを押す
- step3メールをチェックして正しく届いていれば完成です
- step4スプレッドシートのD列とE列にも入力されていることを確認します
メールで通知するメリット
紙のカレンダーに書き込むことでも期限の管理はすることができます。
しかし、データでまとめてメールで通知するのは以下のメリットがあります。
- メールは毎日チェックするので確認漏れがなくなる
- 莫大なデータも管理することができる
- 数年後先の期限を必ず通知されるので不安がない
- 管理業務が効率化され、他の重要な業務に集中できる

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

複数人が期日を入力する際はフォームを連携させるとより効率化ができます
まとめ:自動メール通知による業務効率化をはじめよう
毎朝、重要な期限だけを自動でメールで把握できる仕組みは、業務の負担を大きく減らしてくれます。
Google Apps Scriptを活用することで、特別なプログラミングの知識がなくても、誰でも「使える自動通知システム」を構築できます。
今後は、通知条件を柔軟に変更したり、複数人への通知や、Googleカレンダーとの連携など、さらに幅広い自動化の応用が可能です。
これらをうまく組み合わせることで、日々の業務をさらに快適に、そして効率よく進めることができます。
この仕組みをまだ試していない方は、ぜひ一度導入してみてください。