株式会社COTSUBU
kintone

kintoneで期限・残日数を表示して色を付ける方法|一覧で期限切れを目立たせる

宇田川 将也|9分
kintone期限管理残日数プラグインJavaScript

kintoneで「期限まであと何日」を出したい場合、標準の計算フィールドでは作れません。今日の日付を返す関数がないためです。期限切れを一覧で色分けするには、公式のAPIを使ったJavaScriptか、設定だけで済む無料プラグイン期限・残日数を使います。

標準の計算式でできること・できないこと

やりたいこと 標準の計算式
着手日から完了日までの日数 できる(完了日 - 着手日、表示形式は数値)
受付日の30日後の期限 できる(受付日 + 30、表示形式は日付)
今日から期限までの残日数 できない(今日を取る関数がない)
期限が過ぎているかどうかの判定 できない(同上)
土日・祝日を除いた営業日での残り できない

kintoneは日付を「1970年1月1日からの日数」として扱うため、日付どうしの足し算・引き算はそのまま書けます。詰まるのは「今日」です。計算フィールドに今日を入れる方法がないため、残日数だけがどうしても作れません。日付の書式や和暦についてはkintoneの日付を和暦・曜日で表示する方法で詳しく扱っています。

標準機能だけでどこまで粘れるか

色は付けられませんが、一覧の絞り込みでは「今日」を条件に使えます。ここは意外と知られていません。

  1. 一覧の設定で「+ 一覧を追加」
  2. 絞り込み条件に「期限」を選び、演算子で「以前」、値で「今日」を選ぶ
  3. 「期限切れ」という名前で保存する

これで、開くたびに期限切ればかりが並ぶ一覧ができます。同じ要領で「今日から3日以内」の一覧も作れます。まずはここまでを標準機能でやってください。 一覧を分けるだけで、見落としはかなり減ります。

ただし、この方法には2つの弱点があります。

  • 一覧を切り替えないと気づけない。 普段見ている一覧では、期限切れも通常のレコードも同じ見た目です
  • 「あと何日か」が分からない。 期限切れであることは分かっても、1日超過なのか3か月超過なのかが一目では分かりません

JavaScriptで一覧のセルに色を付ける

kintoneには、一覧の特定のフィールドのセルの要素を取る公式のAPI kintone.app.getFieldElements() があります。これを使えば、DOMを自前でたどらずに色を付けられます。

(() => {
  'use strict';
  const FIELD = '期限';
  const SOON = 3;   // 残り何日から黄色にするか

  const startOfToday = () => {
    const d = new Date();
    d.setHours(0, 0, 0, 0);
    return d;
  };

  kintone.events.on('app.record.index.show', (event) => {
    const cells = kintone.app.getFieldElements(FIELD);
    if (!cells) return event;       // その一覧に列がなければ null が返る

    const today = startOfToday();
    event.records.forEach((record, i) => {
      const cell = cells[i];
      cell.style.backgroundColor = '';
      const value = record[FIELD].value;
      if (!value) return;

      // "2026-09-20" を数値で渡す(文字列を new Date に渡すとUTC扱いでずれる)
      const [y, m, d] = value.split('-').map(Number);
      const days = Math.round((new Date(y, m - 1, d) - today) / 86400000);

      if (days < 0) cell.style.backgroundColor = '#FFD9D9';        // 期限切れ
      else if (days <= SOON) cell.style.backgroundColor = '#FFF3C4'; // 期限間近
    });
    return event;
  });
})();

30行ほどです。app.record.index.show は、一覧を開いたとき・ページを送ったとき・並べ替えたときに毎回発火するので、表示されている行に対して開いた日の日付で判定し直されます。保存したときの値ではないので、日がたってもずれません。JavaScriptカスタマイズの基本は13章 JavaScript・API・外部連携にまとめています。

この書き方で足りないところ

足りないところ 何が必要になるか
土日・祝日を除いた営業日で数える 日本の祝日の判定を自前で持つ(春分・秋分・ハッピーマンデー・振替休日)
完了したレコードを色付けから外す ステータスや完了フラグの条件を追加
期限が複数ある(提出期限・支払期限) ルールを配列にして回す作りに変更
残日数を数値で持って集計したい 保存時に数値フィールドへ入れる処理を別に追加
カレンダー表示・カスタマイズビュー 表形式の一覧以外では getFieldElements が使えません
モバイル画面 別のイベントと別の処理が必要

とくに営業日が厄介です。外部の祝日APIを叩く方法は、自治体のLGWAN環境や閉じた社内ネットワークでは使えません。

なお、期限以外の条件(ステータス・金額・担当者など)で一覧に色を付けたい場合は、別の道具になります。kintoneの一覧で条件に合う行に色を付ける方法をご覧ください。今日を基準にした期限の色分けはこの記事、値そのものによる色分けはそちら、という住み分けです。

設定だけで済ませる:期限・残日数(無料)

COTSUBUが公開している無料プラグイン期限・残日数は、上の内容を設定画面だけで実現します。

  • 期限の日付から残日数を数値フィールドに自動で入れる(期限切れは負の数)
  • 一覧画面で、期限切れのセルと「残り○日以内」のセルに色を付ける(色は自由に選べる)
  • 一覧の色は、開いた日の日付で判定し直すので、保存してから日がたっても正しい
  • 暦日か営業日かを選べる。営業日は土日・日本の祝日・会社独自の休日を除く
  • 期限のフィールドは複数設定できる

無料・会員登録不要・外部と通信しません。 祝日は外部から取りに行かず、祝日法のルールから計算します(1980〜2099年に対応。2019〜2021年の祝日の特例移動は入れていません)。そのためLGWAN環境でも動きます。

設定はこの5ステップです。

  1. 残日数を入れたい場合は、数値フィールドを用意する(色付けだけなら不要)
  2. アプリの設定 →「プラグイン」→「期限・残日数」の歯車アイコン
  3. 「+ ルールを追加」で、期限の日付フィールド・残日数の数値フィールド・数え方(暦日/営業日)を選ぶ
  4. 「残り○日以内」の日数と、期限間近・期限切れの色を選ぶ
  5. 「保存する」→「アプリを更新」

数え方は、暦日なら期限が今日で0、明日で1、昨日で−1です。営業日なら今日の翌日から期限の日までの営業日を数えます。期限が空欄のレコードは、残日数も空にし、色も付けません。

残日数フィールドの使いどころに注意

残日数の数値は、保存したときの値です。 翌日には1日ぶんずれます。そのため、

  • 並べ替え・絞り込みには、残日数ではなく期限の日付を使ってください
  • 残日数フィールドは「詳細画面で目安を見る」「CSVに出して報告に使う」用途に向きます
  • 一覧の色は開いた日で判定し直すので、こちらは常に正しく出ます

いまはPCの画面に対応しています。モバイル画面への対応は無料版で予定しています。毎日の残日数の自動更新や、完了したレコードを色付けから外す設定は有料版で提供する予定です。

リマインド通知との使い分け

kintoneには標準でリマインド通知があります。日付フィールドを基準に「○日前の○時」に、指定した宛先へポータルやメールで通知を送れます。条件(「ステータスが完了以外」など)も付けられます。

色分けと通知は、役割が違います。

リマインド通知(標準) 一覧の色分け
いつ届くか 設定した日時に1回 一覧を開くたび
誰に届くか 指定した担当者 その一覧を見る全員
得意なこと 忘れる前に気づかせる 取り残しを見つける
苦手なこと 通知が埋もれると終わり 一覧を開かないと気づかない
過ぎたあと 追いかけてくれない 赤いまま残り続ける

「通知で気づき、色で取り残しを潰す」の二段構えが、実務では最も確実です。通知だけにすると、休暇中の1通を逃したレコードがそのまま沈みます。色だけにすると、その一覧を見る習慣がない人には届きません。

期限そのものをプロセス管理のステータスと連動させたい場合は、kintoneプロセス管理で承認フローを自動化するもあわせてご覧ください。「誰のところで止まっているか」が見えると、期限切れの原因が特定しやすくなります。

まとめ

  • kintoneの計算フィールドに「今日」を返す関数はないため、残日数は標準では作れない
  • 一覧の絞り込み条件では「今日」を使えるので、「期限切れ」の一覧は標準で作れる
  • 色を付けるなら公式の kintone.app.getFieldElements() を使う。一覧を開くたびに判定し直される
  • 営業日で数えるには、祝日の判定を自前で持つ必要がある
  • 設定だけで済ませるなら無料の期限・残日数。暦日・営業日のどちらでも数えられる
  • 残日数の数値は保存時の値。並べ替えと絞り込みには期限の日付を使う
  • 標準のリマインド通知と色分けは役割が違う。両方使う

→ kintone導入支援の詳細 → kintone無料プラグイン一覧 → kintoneの日付を和暦・曜日で表示する方法 → kintoneの一覧で条件に合う行に色を付ける方法

よくある質問

kintoneの計算フィールドで「今日からあと何日」を出せますか

出せません。計算フィールドには今日の日付を返す関数(TODAY や NOW にあたるもの)がないためです。日付どうしの引き算はできますが、片方に今日を入れられないため、残日数は作れません。

残日数を数値フィールドに入れた場合、毎日自動で変わりますか

変わりません。JavaScriptでもプラグインでも、値が入るのは保存したときです。翌日には1日ぶんずれます。並べ替えや絞り込みには、残日数ではなく期限の日付そのものを使ってください。

標準機能だけで期限切れのレコードを見つけられますか

見つけられます。一覧の絞り込み条件で日付フィールドに「今日」を指定できるため、「期限 < 今日」の一覧を作れば期限切ればかりが並びます。ただし、色を付けることはできません。

一覧に色を付けるのと、リマインド通知は、どちらを使うべきですか

両方です。リマインド通知は「その日に担当者へ1回届く」もので、見逃すとそれきりです。一覧の色は「開くたびに、チームの全員に見える」もので、取りこぼしの発見に向きます。通知で気づき、色で取り残しを潰す、という組み合わせが実務では確実です。

期限・残日数プラグインは無料ですか

無料です。会員登録も不要で、MITライセンスのため商用でも使えます。外部のサーバーと通信しないので、自治体のLGWAN環境や閉じた社内ネットワークでも動きます。

宇田川 将也/ 代表取締役

2024年に総務省の地域活性化起業人として島根県海士町に着任。役場に住み込んで業務改善に従事し、kintoneで電子決裁や定期健診管理を構築しました。

経歴を見る

この記事について相談する

貴社・貴団体の状況に合わせて、最適な進め方をご提案します。

30分相談を予約する