\無料配布/ サーバー不要 社内ポータル作成キット>

​【コピペでOK】「あ、更新日過ぎてた…」を撲滅。スプレッドシートの日付が近づくと、勝手にメールしてくる「0円リマインダー」の作り方

​「契約書の更新期限、昨日だった……!」

「支払期限、今日だと思ってたら昨日までだった……!」

​手帳やカレンダーに書いていたはずなのに、忙殺されてつい見落とす。

そして、冷や汗をかきながら先方に「うっかりしておりまして……」と電話をする。

​バックオフィス担当者なら、一度は経験する胃の痛いミスです。

これを防ぐために、毎日エクセルの日付を目視で確認し、黄色く色付けしたりしていませんか?

​その作業、今日で終わりにしましょう。

あなたが寝ている間も、Googleが勝手に日付をチェックして、「おい、期限が3日後に迫ってるぞ!」とメールで教えてくれる仕組みを、0円で作ります。

​「プログラミングなんて無理!」と思ったあなた。安心してください。

この記事は「レシピ本」です。あなたは私が用意した「魔法の呪文(コード)」をコピーして、指定の場所にペーストするだけ

カップラーメンを作るくらいの難易度で、あなたの専属秘書(リマインダーbot)が誕生します。

目次

​1. 何を作るの?(完成イメージ)

​今回作るのは、こんな仕組みです。

  1. Googleスプレッドシートに「タスク名」と「期限」を書いておく。
  2. 毎朝8時~9時に、プログラムが自動で起動。
  3. ​もし「期限まであと3日」のタスクがあれば、あなたのメールアドレスに通知が届く。

​特別なアプリは不要。Googleアカウントさえあれば、今すぐ始められます。

​Step 1:台所(スプレッドシート)を準備する

​まずは、材料を入れるための「スプレッドシート」を用意します。

新規作成して、以下のように1行目に見出し、2行目以降にデータを入れてください。

【シートの構成ルール】

  • A列:タスク名(なんでもOK)
  • B列:期限(日付形式で入力。例:2026/02/01)
  • C列:通知したい人のメールアドレス

​※この「A列、B列、C列」の並び順だけは守ってください!(ここを変えると、呪文が効かなくなります)

​Step 2:魔法の書(スクリプトエディタ)を開く

​ここから少しだけ「開発者っぽい」画面に行きますが、怖くありません。

  1. ​スプレッドシートのメニューバーにある 「拡張機能」 をクリック。
  2. 「Apps Script」 をクリック。

​すると、新しいタブが開きます。これが「Google Apps Script(通称:GAS)」の編集画面です。

最初から function myFunction() {…} みたいな文字が書いてあると思いますが、全部消して真っ白にしてください。

​Step 3:魔法の呪文(コード)をコピペする

​さあ、メインイベントです。

以下のグレーの枠の中にある文字を、上から下まで全部コピーしてください。

そして、先ほど真っ白にした編集画面に、ドーンと貼り付け(ペースト)てください。

function sendReminderEmail() {
  // ■設定エリア(ここだけ自由に変えてOK!)----------------
  const targetSheetName = "シート1"; // データの入っているシート名
  const daysBefore = 3; // 「何日前に」通知するか(例:3なら3日前)
  // -----------------------------------------------------

  // スプレッドシートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName);
  
  // シートが見つからない時のエラー処理
  if (!sheet) {
    console.log("シートが見つかりません。シート名を確認してください。");
    return;
  }

  // データの最終行を取得
  const lastRow = sheet.getLastRow();
  
  // データがない場合は終了
  if (lastRow <= 1) {
    return;
  }

  // データをまとめて取得(2行目から最後まで)
  const data = sheet.getRange(2, 1, lastRow - 1, 3).getValues();
  const today = new Date(); // 今日の日付
  
  // 今日の日付の「時間」をリセット(0時0分0秒にする)して、日付だけで比較できるようにする
  today.setHours(0, 0, 0, 0);

  // 1行ずつチェックしていくループ
  for (let i = 0; i < data.length; i++) {
    const taskName = data[i][0]; // A列:タスク名
    const deadline = new Date(data[i][1]); // B列:期限
    const emailTo = data[i][2]; // C列:メールアドレス

    // 日付が入っていない、またはメールがない行はスキップ
    if (!deadline || !emailTo) {
      continue;
    }

    // 期限の日付の「時間」もリセット
    deadline.setHours(0, 0, 0, 0);

    // 「期限 - 今日」の日数差を計算(ミリ秒単位なので、日数に変換)
    const diffTime = deadline.getTime() - today.getTime();
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));

    // もし「設定した日数(例:3日)」と一致したらメールを送る
    if (diffDays === daysBefore) {
      
      const subject = `【期限通知】「${taskName}」の期限が迫っています`;
      const body = `
お疲れ様です。
以下のタスクの期限まで、あと${daysBefore}日です。

■タスク名:${taskName}
■期限日:${Utilities.formatDate(deadline, Session.getScriptTimeZone(), "yyyy/MM/dd")}

確認をお願いします。
------------------------------
このメールは自動送信されています。
`;

      // メール送信実行!
      MailApp.sendEmail({
        to: emailTo,
        subject: subject,
        body: body
      });
      
      console.log(`メール送信完了:${taskName} -> ${emailTo}`);
    }
  }
}

貼り付けたら、フロッピーディスクのアイコン(💾)を押して「保存」します。プロジェクト名は「リマインダー」など適当でOKです。

​Step 4:一度だけ「テスト実行」と「承認」をする

​このコードが正しく動くかテストします。

スプレッドシートに戻り、わざと「期限が3日後のタスク」を1行作ってみてください。(例:今日が1月1日なら、1月4日の日付を入れる)

​準備ができたら、Apps Scriptの画面に戻り、上にある 「▷ 実行」 ボタンを押します。

​⚠️ ここで最大の難関「承認画面」が出ます!

​初めて実行すると、Googleが「これ、お前が作った怪しいプログラムじゃないよな?」と確認してきます。以下の手順で突破してください(これさえ乗り越えればゴールです!)。

  1. ​「権限を確認」をクリック。
  2. ​自分のGoogleアカウントを選択。
  3. 「このアプリはGoogleで確認されていません」という怖い警告が出ますが左下の「詳細」をクリック。
  4. ​さらに下に出てくる 「リマインダー(安全ではないページ)に移動」 をクリック。(※自分で貼ったコードなので安全です!)
  5. ​最後に 「許可」 をクリック。

​これで画面下に「実行完了」と出れば成功です。

あなたのメールボックスを見てください。「【期限通知】〜」というメールが届いていませんか?

届いていれば、魔法成功です!

​Step 5:目覚まし時計(トリガー)をセットする

​今は「実行ボタン」を押した時だけ動きますが、これを「毎朝勝手に動く」ように設定します。

  1. ​Apps Script画面の左側にある 時計のマーク(トリガー) をクリック。
  2. ​右下の 「+ トリガーを追加」 をクリック。
  3. ​以下のように設定します。
    • ​実行する関数:sendReminderEmail
    • ​イベントのソース:「時間主導型」
    • ​タイプ:「日付ベースのタイマー」
    • ​時刻:「午前8時〜9時」(お好きな時間に)
  4. ​「保存」をクリック。

​おめでとうございます! これで完成です。

あとはスプレッドシートに行を追加していくだけ。PCを閉じていても、寝坊しても、毎朝8時頃にGoogleが勝手にチェックして、期限が近いものがあればメールで叩き起こしてくれます。

​よくある質問(Q&A)

  • Q. 「3日前」じゃなくて「7日前」や「当日」にしたいのですが?
    • ​A. コードの上の方にある const daysBefore = 3; の数字を 7 や 0 に書き換えて保存してください。
  • Q. エラーが出て動きません!
    • ​A. シート名が「シート1」になっていますか? もし「タスク管理」などに名前を変えている場合は、コードの中の const targetSheetName = “シート1”; も書き換えてください。
  • Q. 毎日メールが来るのが鬱陶しいです。
    • ​A. このツールは「期限の〇日前」の1回だけ通知する仕様です。毎日来るということは、毎日が誰かの締切日なのかもしれません……頑張ってください。

​まとめ:そのルーチンワーク、機械に譲りませんか?

​今まで「忘れないように」と脳のメモリを使っていた作業が、たったこれだけのコピペ作業で消滅しました。

これこそが「DX(デジタルトランスフォーメーション)」の第一歩です。難しいツールを入れる必要はありません。

​「コードを貼るだけでこんなに便利になるんだ!」

そう感じていただけたら嬉しいです。

​でも……

「うちはもっと複雑で、期限が来たらチャットワークに通知したい」

「完了したタスクは通知しないようにしたい」

「請求書も自動で作ってPDF添付して送りたい」

​そんな「もう一歩先のワガママ」が出てきたら、それはあなたの業務が進化しようとしている証拠です。

​そんな時は「うしろぽっけ」にご相談ください。

今回のコードをベースに、あなたの会社の業務フローに完璧にフィットさせた「専用ツール」に改造します。

(もちろん、自分でコードを勉強する手間はゼロです)

\ もっと便利にカスタマイズしたいなら / ⚡️ このツールを「自分専用」に改造してもらう
(無料相談)
よかったらシェアしてね!
  • URLをコピーしました!
目次