「契約書の更新期限、昨日だった……!」
「支払期限、今日だと思ってたら昨日までだった……!」
手帳やカレンダーに書いていたはずなのに、忙殺されてつい見落とす。
そして、冷や汗をかきながら先方に「うっかりしておりまして……」と電話をする。
バックオフィス担当者なら、一度は経験する胃の痛いミスです。
これを防ぐために、毎日エクセルの日付を目視で確認し、黄色く色付けしたりしていませんか?
その作業、今日で終わりにしましょう。
あなたが寝ている間も、Googleが勝手に日付をチェックして、「おい、期限が3日後に迫ってるぞ!」とメールで教えてくれる仕組みを、0円で作ります。
「プログラミングなんて無理!」と思ったあなた。安心してください。
この記事は「レシピ本」です。あなたは私が用意した「魔法の呪文(コード)」をコピーして、指定の場所にペーストするだけ。
カップラーメンを作るくらいの難易度で、あなたの専属秘書(リマインダーbot)が誕生します。
1. 何を作るの?(完成イメージ)
今回作るのは、こんな仕組みです。
- Googleスプレッドシートに「タスク名」と「期限」を書いておく。
- 毎朝8時~9時に、プログラムが自動で起動。
- もし「期限まであと3日」のタスクがあれば、あなたのメールアドレスに通知が届く。
特別なアプリは不要。Googleアカウントさえあれば、今すぐ始められます。
Step 1:台所(スプレッドシート)を準備する
まずは、材料を入れるための「スプレッドシート」を用意します。
新規作成して、以下のように1行目に見出し、2行目以降にデータを入れてください。
【シートの構成ルール】
- A列:タスク名(なんでもOK)
- B列:期限(日付形式で入力。例:2026/02/01)
- C列:通知したい人のメールアドレス
※この「A列、B列、C列」の並び順だけは守ってください!(ここを変えると、呪文が効かなくなります)
Step 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が「これ、お前が作った怪しいプログラムじゃないよな?」と確認してきます。以下の手順で突破してください(これさえ乗り越えればゴールです!)。
- 「権限を確認」をクリック。
- 自分のGoogleアカウントを選択。
- 「このアプリはGoogleで確認されていません」という怖い警告が出ますが左下の「詳細」をクリック。
- さらに下に出てくる 「リマインダー(安全ではないページ)に移動」 をクリック。(※自分で貼ったコードなので安全です!)
- 最後に 「許可」 をクリック。
これで画面下に「実行完了」と出れば成功です。
あなたのメールボックスを見てください。「【期限通知】〜」というメールが届いていませんか?
届いていれば、魔法成功です!
Step 5:目覚まし時計(トリガー)をセットする
今は「実行ボタン」を押した時だけ動きますが、これを「毎朝勝手に動く」ように設定します。
- Apps Script画面の左側にある 時計のマーク(トリガー) をクリック。
- 右下の 「+ トリガーを追加」 をクリック。
- 以下のように設定します。
- 実行する関数:sendReminderEmail
- イベントのソース:「時間主導型」
- タイプ:「日付ベースのタイマー」
- 時刻:「午前8時〜9時」(お好きな時間に)
- 「保存」をクリック。
おめでとうございます! これで完成です。
あとはスプレッドシートに行を追加していくだけ。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添付して送りたい」
そんな「もう一歩先のワガママ」が出てきたら、それはあなたの業務が進化しようとしている証拠です。
そんな時は「うしろぽっけ」にご相談ください。
今回のコードをベースに、あなたの会社の業務フローに完璧にフィットさせた「専用ツール」に改造します。
(もちろん、自分でコードを勉強する手間はゼロです)
(無料相談)