カテゴリ: Office Scripts 更新日: 2026/02/24

Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法

日付判定で自動色分けするロジック
日付判定で自動色分けするロジック

先生と生徒の会話形式で理解しよう

生徒

「Office ScriptsでExcelの期限管理を自動化したいです。日付によってセルの色を自動で変えられますか?」

先生

「できますよ。Office Scriptsを使えば、今日より前の日付を赤、近い期限を黄色など、条件付き書式をコードで自動設定できます。」

生徒

「難しそうですが、パソコン初心者でもできますか?」

先生

「順番に理解すれば大丈夫です。日付判定のロジックをやさしく解説しますね。」

1. Office Scriptsとは?

1. Office Scriptsとは?
1. Office Scriptsとは?

Office Scriptsとは、Excel Onlineで使えるExcel自動化機能です。ブラウザ版Excelの自動化タブから実行でき、クリック操作をコードに置き換えて自動処理できます。プログラミング未経験者でも、いつものExcel作業を文章のように書くだけで自動化できます。

今回のテーマは「日付判定で自動色分けするロジック」です。これは、締切管理、タスク管理表、プロジェクト管理、請求書管理などで非常に便利です。人が目で確認しなくても、期限切れを赤色で表示するなど、自動で注意喚起できます。

2. 条件付き書式とは?

2. 条件付き書式とは?
2. 条件付き書式とは?

条件付き書式とは、特定の条件を満たしたときにセルの色や文字色を変える機能です。例えば「今日より前の日付なら赤くする」という設定ができます。

日付判定とは、セルに入っている日付と今日の日付を比べることです。今日の日付は「現在日時」と呼ばれます。プログラムではDateという機能を使って取得します。

たとえば、牛乳の賞味期限をイメージしてください。今日より前なら危険、今日から三日以内なら注意、それ以外は安心、という考え方です。これをExcelで自動判定するのが今回のロジックです。

3. 今日より前の日付を赤色にする方法

3. 今日より前の日付を赤色にする方法
3. 今日より前の日付を赤色にする方法

まずは基本からです。今日より前の日付を赤色にするOffice Scriptsコードを書いてみましょう。これは期限切れ判定の基本です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A2:A10");

  const conditionalFormat = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.cellValue
  );

  conditionalFormat.getCellValue().setRule({
    formula1: "=TODAY()",
    operator: ExcelScript.ConditionalCellValueOperator.lessThan
  });

  conditionalFormat.getFormat().getFill().setColor("red");
}

このコードでは、TODAYというExcel関数を使っています。TODAYは「今日の日付」を返す関数です。lessThanは「より小さい」という意味で、今日より前かどうかを判定しています。

4. 今日から三日以内を黄色にするロジック

4. 今日から三日以内を黄色にするロジック
4. 今日から三日以内を黄色にするロジック

次に、期限が近いものを黄色にする方法です。今日から三日以内という条件を作ります。これは締切直前のタスク管理に便利です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A2:A10");

  const conditionalFormat = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.custom
  );

  conditionalFormat.getCustom().setFormulaLocal(
    "=AND(A2>=TODAY(),A2<=TODAY()+3)"
  );

  conditionalFormat.getFormat().getFill().setColor("yellow");
}

ANDは「両方の条件を満たす」という意味です。今日以上、かつ三日以内という条件を作っています。これが日付判定ロジックの基本的な考え方です。

5. 未来の日付を緑色にする設定

5. 未来の日付を緑色にする設定
5. 未来の日付を緑色にする設定

今度は余裕のある期限を緑色にします。これは安心ゾーンです。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A2:A10");

  const conditionalFormat = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.cellValue
  );

  conditionalFormat.getCellValue().setRule({
    formula1: "=TODAY()+3",
    operator: ExcelScript.ConditionalCellValueOperator.greaterThan
  });

  conditionalFormat.getFormat().getFill().setColor("green");
}

greaterThanは「より大きい」という意味です。三日後より先なら緑色になります。

6. 日付が空白の場合を除外する方法

6. 日付が空白の場合を除外する方法
6. 日付が空白の場合を除外する方法

実務では、空白セルがあることも多いです。空白を色付けしないための工夫も重要です。これもExcel自動化では大切なポイントです。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A2:A10");

  const conditionalFormat = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.custom
  );

  conditionalFormat.getCustom().setFormulaLocal(
    "=AND(A2<>\"\",A2<TODAY())"
  );

  conditionalFormat.getFormat().getFill().setColor("red");
}

空白でないという条件を追加することで、正しい日付判定ができます。これが実践的なOffice Scripts条件付き書式自動化テクニックです。

7. 日付判定ロジックの考え方まとめ

7. 日付判定ロジックの考え方まとめ
7. 日付判定ロジックの考え方まとめ

日付判定ロジックの基本は「比較」です。今日より前か、今日と同じか、未来か。この三つに分けるだけで、タスク管理やスケジュール管理が大きく改善します。

Office Scriptsで条件付き書式を自動化すれば、毎回手動で設定する必要はありません。Excel自動化は業務効率化に直結します。特にプロジェクト管理、締切管理、請求管理などで効果を発揮します。

初心者の方は、まずTODAY関数と比較演算子の意味を理解しましょう。比較演算子とは「より小さい」「より大きい」といった比較の記号のことです。これが分かれば日付判定は難しくありません。

Office Scripts条件付き書式自動化は、Excel業務効率化、日付自動判定、期限管理自動化の第一歩です。少しずつ試しながら、自分の表に合わせてカスタマイズしてみましょう。

まとめ

まとめ
まとめ

今回は、Office Scriptsを使ったExcelの日付判定と条件付き書式の自動化について、基礎から実践まで順番に解説しました。日付判定ロジックの中心は「今日の日付との比較」です。今日より前なら期限切れ、今日から三日以内なら期限間近、それ以降は余裕ありというように、基準日を中心に分類するだけで、期限管理は格段に分かりやすくなります。

Office Scriptsを活用すれば、Excel Online上で条件付き書式をコードで自動設定できます。これにより、毎回手動で設定する手間がなくなり、ヒューマンエラーの防止にもつながります。特にタスク管理表、プロジェクト管理表、スケジュール管理表、請求書管理台帳、契約更新管理など、日付を扱う業務では大きな効果を発揮します。

日付判定の基本は、TODAY関数と比較演算子の組み合わせです。lessThanは今日より前、greaterThanは指定日より後という意味でした。さらにAND関数を使えば、複数条件を組み合わせた柔軟なロジックを作ることができます。空白除外の条件を加えることで、実務でも使える安定した自動化が実現できます。

Excel自動化は難しく感じるかもしれませんが、仕組みはとてもシンプルです。基準日を決める、比較する、色を付ける。この三段階を理解するだけで、日付自動判定は完成します。Office Scriptsによる条件付き書式自動化は、業務効率化、作業時間短縮、生産性向上に直結する重要なスキルです。

総合サンプルプログラム

最後に、期限切れを赤、三日以内を黄色、それ以外を緑にする総合サンプルを紹介します。実務でそのまま応用できる構成です。


function main(workbook: ExcelScript.Workbook) {
  const sheet = workbook.getActiveWorksheet();
  const range = sheet.getRange("A2:A100");

  // 期限切れ(赤)
  let expired = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.custom
  );
  expired.getCustom().setFormulaLocal(
    "=AND(A2<>\"\",A2<TODAY())"
  );
  expired.getFormat().getFill().setColor("red");

  // 三日以内(黄色)
  let warning = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.custom
  );
  warning.getCustom().setFormulaLocal(
    "=AND(A2>=TODAY(),A2<=TODAY()+3)"
  );
  warning.getFormat().getFill().setColor("yellow");

  // 余裕あり(緑)
  let safe = range.addConditionalFormat(
    ExcelScript.ConditionalFormatType.cellValue
  );
  safe.getCellValue().setRule({
    formula1: "=TODAY()+3",
    operator: ExcelScript.ConditionalCellValueOperator.greaterThan
  });
  safe.getFormat().getFill().setColor("green");
}

このように、Office Scriptsで条件付き書式を段階的に設定すれば、Excelの期限管理は自動化できます。日付比較ロジックを理解することで、応用範囲は大きく広がります。例えば七日以内に変更したり、月末基準に変更したりすることも簡単です。

先生と生徒の振り返り会話

生徒

今日より前かどうかを比較するだけで、期限管理がこんなに分かりやすくなるとは思いませんでした。日付判定ロジックは意外とシンプルですね。

先生

そうですね。基準日を決めて比較するという考え方が大切です。TODAY関数と比較演算子を理解すれば、Excel自動化は怖くありません。

生徒

空白除外の条件を入れることで、実務でも安心して使えると分かりました。条件付き書式の自動化は業務効率化に直結しますね。

先生

その通りです。Office Scriptsを活用すれば、毎回の手作業を減らし、ミスを防ぎ、生産性を高めることができます。まずは小さな表から自動化を試してみましょう。

生徒

はい。日付自動判定と条件付き書式を使って、タスク管理表を改良してみます。

カテゴリの一覧へ
新着記事
New1
Office Scripts
Office Scriptsで日付判定!Excel条件付き書式を自動化して期限管理をラクにする方法
New2
Office Scripts
Office Scripts普及の歴史とMicrosoftの方向性!Excel自動化が進化してきた流れをやさしく解説
New3
Excel VBA
Excel VBA関数を用途別に作成!計算・文字列処理の基本を初心者向けに解説
New4
Office Scripts
Office Scriptsで条件付き書式を自動化!数値変化に応じてExcelの書式を自動更新する方法
人気記事
No.1
Java&Spring記事人気No1
Excel VBA
Excelマクロのセキュリティ設定の基本!安全に実行するための信頼センター設定まとめ
No.2
Java&Spring記事人気No2
Office Scripts
Office Scriptsでできること・できないことを完全整理!Excel自動化の基本と限界をやさしく解説
No.3
Java&Spring記事人気No3
Excel VBA
Excel VBAとOffice Scriptsの違いを比較!初心者でもわかる学ぶべきスキル
No.4
Java&Spring記事人気No4
Excel VBA
目的別にモジュールを分割する方法!処理単位で整理して見やすくするテクニック
No.5
Java&Spring記事人気No5
Excel VBA
Excel VBA基本文法の総まとめ!初心者が必ず押さえるべき20の基礎ポイント完全ガイド
No.6
Java&Spring記事人気No6
Office Scripts
Office Scriptsで条件付き書式を自動化!Excel自動化初心者向けスクリプト操作の基本
No.7
Java&Spring記事人気No7
Excel VBA
Excel VBAの開発環境を最速で整える!VBEの開き方から基本操作まで完全ガイド
No.8
Java&Spring記事人気No8
Excel VBA
Excel VBAプロジェクト構成とモジュール管理を完全解説!初心者でも迷わない基本の考え方