0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

rex0220 マークダウンプラグイン ガントチャート

Last updated at Posted at 2025-10-11

マークダウンプラグイン計算式プラグインの連携で、ガントチャートを表示してみます。

概要

マークダウンプラグインは、Mermaid ライブラリの書式でチャートやグラフを表示できます。
計算式プラグインで、テーブルデータからガントチャートを表示してみます。

レコード追加時に、計算式プラグインでテーブルにガントチャートの初期設定を行います。

2025-10-11_09h16_47.png

  • セクション: ガントチャートの左に表示
  • タスクID: タスクにつけるユニークID
  • 依存ID: 先行するタスクIDを指定。複数のタスクIDを空白で区切って指定可能
  • タスク名
  • 開始日: タスクの開始日
  • 期間: タスクの期間(日)
  • 重要: チェックでタスクを赤表示
  • マイルストーン
  • 状態: Active, Done

操作例

テーブルの変更が即ガントチャートに反映されます。

2025-10-11_09h42_25.gif

アプリ設定

2025-10-11_09h30_10.png

マークダウンプラグイン設定

2025-10-11_09h29_00.png

計算式プラグイン設定

2025-10-11_09h27_28.png

OPTION: 非同期計算

// テーブル SUBTABLE (editable)
"[
{'セクション':'企画','タスクID':'a1','タスク名':'プロジェクト計画','開始日':'"&DATE_FORMAT("TODAY","YYYY-MM-DD")&"','期間':'14','依存ID':'','重要': ['Y'
    ],'マイルストーン': [],'状態':''
},
{'セクション':'要件定義','タスクID':'b1','タスク名':'要件定義','開始日':'','期間':'7','依存ID':'a1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'設計','タスクID':'c1','タスク名':'基本設計','開始日':'','期間':'7','依存ID':'b1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'設計','タスクID':'c2','タスク名':'詳細設計','開始日':'','期間':'14','依存ID':'c1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'開発','タスクID':'d1','タスク名':'実装','開始日':'','期間':'14','依存ID':'c2','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'テスト','タスクID':'e1','タスク名':'単体テスト','開始日':'','期間':'14','依存ID':'d1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'テスト','タスクID':'e2','タスク名':'結合テスト','開始日':'','期間':'14','依存ID':'e1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'リハーサル','タスクID':'f1','タスク名':'運用リハーサル計画','開始日':'','期間':'7','依存ID':'e1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'リハーサル','タスクID':'f2','タスク名':'運用リハーサル','開始日':'','期間':'7','依存ID':'e2 f1','重要': [],'マイルストーン': [],'状態':''
},
{'セクション':'リリース','タスクID':'g1','タスク名':'本番リリース','開始日':'"&DATE_ADD("TODAY",105,"day","YYYY-MM-DD")&"','期間':'1','依存ID':'e2 f2','重要': ['Y'
    ],'マイルストーン': ['Y'
    ],'状態':''
},
{'セクション':'保守','タスクID':'h1','タスク名':'運用・サポート','開始日':'"&DATE_ADD("TODAY",105,"day","YYYY-MM-DD")&"','期間':'14','依存ID':'e2 f2','重要': [],'マイルストーン': [],'状態':''
}
]"

// 文字列複数行1 MULTI_LINE_TEXT
LET(
  sec,"",
  tasks, ARRAY(),
  dummy, TARRAYIF(セクション,
   ARRAY(IF(sec!=セクション,
        ARRAY(FSET(sec, セクション),FSET(tasks, ARRAY(tasks,"  section "&セクション)))
      ),
      FSET(tasks, ARRAY(tasks,
        "  "&タスク名 & " :"&
        IF(重要="Y","crit, ")&
        IF(マイルストーン="Y","milestone, ")&
        SWITCH(状態,"Active","active, ","Done","done, ","")&
        タスクID &", " & NVL(DATE_FORMAT(開始日,"YYYY-MM-DD"),"after" & " " & 依存ID) &
        ", " & 期間 & "d" )
      )
    )
  ),
  JOIN(ARRAY(
    "### 🏢 ガントチャート(Gantt Chart)",
    "",
    "```mermaid",
    "gantt",
    "  title "&NVL(タイトル,"ガントチャート(Gantt Chart)"),
    "  dateFormat  YYYY-MM-DD",
    tasks,
    "```"
  ),NEWLINE())
)

テーブル初期設定の作成

あらかじめ、テンプレートになる計画をテーブルに設定します。
計算式プラグインの計算式ツールで、テーブルから JSON 文字列を取得して、テーブルの計算式にセットします。
※日付等は、当日等の計算式に置き換えます。

2025-10-11_09h32_22.png

  • 計算式
REPLACEALL(OTVAL(テーブル),DQUOTE(),"'")
  • 計算結果
[
    {'セクション':'企画','タスクID':'a1','タスク名':'プロジェクト計画','開始日':'2025-10-11','期間':'14','依存ID':'','重要': ['Y'
        ],'マイルストーン': [],'状態':''
    },
    {'セクション':'要件定義','タスクID':'b1','タスク名':'要件定義','開始日':'','期間':'7','依存ID':'a1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'設計','タスクID':'c1','タスク名':'基本設計','開始日':'','期間':'7','依存ID':'b1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'設計','タスクID':'c2','タスク名':'詳細設計','開始日':'','期間':'14','依存ID':'c1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'開発','タスクID':'d1','タスク名':'実装','開始日':'','期間':'14','依存ID':'c2','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'テスト','タスクID':'e1','タスク名':'単体テスト','開始日':'','期間':'14','依存ID':'d1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'テスト','タスクID':'e2','タスク名':'結合テスト','開始日':'','期間':'14','依存ID':'e1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'リハーサル','タスクID':'f1','タスク名':'運用リハーサル計画','開始日':'','期間':'7','依存ID':'e1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'リハーサル','タスクID':'f2','タスク名':'運用リハーサル','開始日':'','期間':'7','依存ID':'e2 f1','重要': [],'マイルストーン': [],'状態':''
    },
    {'セクション':'リリース','タスクID':'g1','タスク名':'本番リリース','開始日':'2026-01-24','期間':'1','依存ID':'e2 f2','重要': ['Y'
        ],'マイルストーン': ['Y'
        ],'状態':''
    },
    {'セクション':'保守','タスクID':'h1','タスク名':'運用・サポート','開始日':'2026-01-24','期間':'14','依存ID':'e2 f2','重要': [],'マイルストーン': [],'状態':''
    }
]
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?