タケモ塾

エクセルだけで作る!工程表(ガントチャート)の作り方②

エクセルだけで作る!工程表(ガントチャート)の作り方②

一般的な工程表(ガントチャート)であれば、Excelの機能だけで作成することができます。
本記事では、Excel機能のみを利用した「工程表(ガントチャート)」の作り方を解説していきます。
※本記事は「ひな形」作成後の処理を解説しています。「ひな形」の作成手順は前の記事をご参照ください。

下記ページから完成版をダウンロードいただけます。
【Excelテンプレート】工程表(ガントチャート)2023年版

工程表(ガントチャート)とは?

システム開発や建設工事など、定められた期間があるプロジェクトは、スケジュールを作成して状況を管理しています。
手帳などのカレンダーを利用したスケジュール管理とは異なり、各作業の関連性や時系列をもとに「バー」(期間)で表現し、スケジュールを「見える化」して全体の状況を把握します。
なお、 本記事は「工程表の作り方」ではなく「工程表テンプレートの作り方」ですのでご注意ください。

本記事で紹介する工程表(ガントチャート)の機能

本記事では以下機能を持つ工程表の作成手順を紹介します。

【機能】
・開始日、終了日を入れるとカレンダー部分の背景色が「水色」に代わります。
・進捗度に「100%」を入れると背景色が「グレー」に代わります。
・土日、祝日(サンプルでは4/5を仮の祝日として設定)の背景色が「ピンク」に代わります。

CellNetsVBA

前回のおさらい

前回の記事では見出しの作成から罫線の設定までを行いました。
本記事では、自動的に背景色を設定する機能について紹介します。

【前回(見出しの作成から罫線の設定まで) イメージ図】

ガントチャート

開始日/終了日の設定

工程表の作成は「日付」の扱いが重要です。正しくない日付(2/30など)が入力されることを避けるため、日付の入力設定、表示設定を行います。

「開始日」「終了日」の明細行(C列~D列)を選択してください。「データ」タブ>「データの入力規則」を選択し、日付の入力に関する設定を行います。「データの入力規則」で利用する各タブの用途は以下となります。

タブ名 用途 設定
設定 入力する際の値の種類や範囲(期間や数値の範囲)を設定することができます。
今回は2022年~2023年の日付を範囲として設定しています。
【入力の種類】日付
【開始日】2022/1/1
【終了日】2023/12/31
入力時メッセージ 何を入力するのか利用者に伝えるためにメッセージを表示します。(今回は利用しません) なし
エラーメッセージ エラー値が入力された際のメッセージを設定します。 【タイトル】期間内の日付を設定してください
【エラーメッセージ】2022年~2023年内の日付を指定してください
日本語入力 セルを選択した際の入力形式(ひらがな、カタカナ、数値等)を指定することができます。 【日本語入力】半角英数字
工程表(ガントチャート)の作り方


設定が完了したら日付を入力してみましょう。「####」と表示された場合、列幅が狭く、日付を表示できていないことになります。列幅を広くすることも可能ですが、工程表はカレンダー部分の表示を広げるために「開始日」「終了日」の列幅を広げることは得策ではないため、以下の操作を行ってください。

・期日は「カレンダー」部分から判断できるため、文字サイズを小さくしてください。
・「セルの書式設定」の「表示形式」を選択し、「ユーザー定義」の「種類」を「yy/mm/dd」に変更しましょう。
・上記を行った上で、列幅を調整しましょう。


このとき、より日付を短く表現するために「yy/m/d」とすると、表示した際にノイズが生じて見づらくなります。桁数は揃えて設定しましょう。

工程表(ガントチャート)の作り方

進捗度の入力設定

今回は「進捗度」より背景色の設定を行います。そのため正しくない数値(120%等)が入力されると正しく処理できなくなるため、「開始日」「終了日」同様、表示設定、入力設定を行います。

ここではまず「表示形式」の設定を行います。
「進捗度」の明細行(E列)を選択し、「ホーム」タブ>「%」を指定します。

工程表(ガントチャート)の作り方

設定後、「1」や「100」を入力し「1%」「100%」と表示されることを確認してください。
この時、「開始日」「終了日」に対して「進捗度」の文字サイズが大きく、ノイズが生じます。「開始日」「終了日」同様の文字サイズに修正してください。

次に進捗度の入力設定を行います。「進捗度」の明細行(E列)を選択し、「データ」タブ>「データの入力規則」を選択してください。

タブ名 設定
設定 【入力の種類】小数点数
【開始日】0
【終了日】1
入力時メッセージ なし
エラーメッセージ 【タイトル】不正な値が入力されました
【エラーメッセージ】0~100までの進捗度を入力してください
日本語入力 【日本語入力】半角英数字

この時の「設定」に注意が必要です。「%」とは、「0.01」など小数点以下の数値を%の形で表現しているため、内部では「小数点数」として扱っています。そのため「整数:0~100」を指定すると意図した制御が行われません。
「小数点数」で「0~1」(%にすると0~100)を範囲として指定しましょう。

工程表(ガントチャート)の作り方

期間に対する背景色の設定

ここまでで入力の設定が完了しました。次に「背景色」の設定を行います。
「背景色」の設定は「条件付き書式」を利用して設定します。しかし、いきなり「条件付き書式」に条件を指定することは難しいため、まずはExcel上で条件式の確認を行います。

まず、今回の条件を分解します。今回の条件は「開始日」「終了日」が「カレンダーの日付」に対して範囲内か否か、を確認するものとなります。これをいきなり書くと難しいため、機械的に条件を分解します。

【条件】
① 「開始日」がカレンダーの日付より「後」
② 「終了日」がカレンダーの日付より「前」

まず①の条件文を考えてみましょう。条件文ですので「IF」関数を使用します。
また、IF関数の条件に合ったか否か判断するため、ここでは「〇」を表示する関数を作成してみます。設定後、横にオートフィルで数式をコピーしてください。(コピーする際は「書式なしコピー」を選択してください)

【①に対する関数】
=IF($C4<=F$3,”〇”,””)

工程表(ガントチャート)の作り方

指定日(4/4)以降に〇がつきました。次に、②の条件文を考えてみましょう。
同じF4に対して以下計算式を設定します。設定後、横にオートフィルで数式をコピーしてください。(コピーする際は「書式なしコピー」を選択してください)

【②に対する関数】
=IF($D4>=F$3,”〇”,””)

工程表(ガントチャート)の作り方

指定日(4/8)以前に〇がつきました。この①②の条件を組み合わせて設定します。
組み合わせるために「AND」関数を使用します。設定後、横にオートフィルで数式をコピーしてください。(コピーする際は「書式なしコピー」を選択してください)

【①②を合わせた関数】
=IF(AND($C4<=F$3,$D4>=F$3),”〇”,””)
 
 
工程表(ガントチャート)の作り方

意図した期間に「〇」が設定されました。この時「$」の指定に注意が必要です。
「開始日」「終了日」は「列」が基準となるため「列名の前」に「$」を指定しています。
それに対し、「カレンダーの日付」は「行」が基準となるため「行番号の前」に「$」を指定しています。
これがずれると条件付き書式を設定した際、正しく表示されなくなるため、今回のようにExcel上で意図した通り表示されるか確認してから設定することをお勧めします。

ここまでで「条件式」の確認ができました。この「条件式」を使用して「条件付き書式」を設定します。
「F4」を先頭に、明細行を選択し、「ホーム」タブ>「新しいルール」を選択してください。

工程表(ガントチャート)の作り方

「数式を使用して、書式設定するセルを決定」を指定し、先ほど作成した関数の「条件部分」を設定します。
設定後「書式」の「塗りつぶし」より、背景色を設定しましょう。

【①②を合わせた関数の「条件部分」】
=AND($C4<=F$3,$D4>=F$3)

工程表(ガントチャート)の作り方

条件付き書式の設定より、以下のように期間に対する背景色が設定されます。
調査に使用した関数は後で消してください。

工程表(ガントチャート)の作り方

ステータスに対する背景色の設定

ここまでで「期間」に対する背景色の設定が完了しました。次は「ステータスに応じた背景色」の設定を行います。
ステータスは「進捗度」より判断することができます。この「進捗度」に対するステータスを機械的に検討してみましょう。

【条件】
① 「進捗度」が「100%」(数値としては「1」)以下の場合、未完了とする
② 「進捗度」が「100%」(数値としては「1」)の場合、完了とする
 
この時、「未完了」と言うのは先ほど表現した設定より表せていますので、特に追加の設定をする必要はありません。
ここで新たに出てきたのは②の条件です。では②の条件文を考えてみましょう。
同じF4に対して以下計算式を設定します。設定後、縦にオートフィルで数式をコピーしてください。(コピーする際は「書式なしコピー」を選択してください)
 
【② に対する関数】
=IF($E4=1,”〇”,””)

工程表(ガントチャート)の作り方

では先程同様、先に作成した関数と先程作成した関数を合わせてみましょう。
設定後、縦、横にオートフィルで数式をコピーしてください。(書式なしコピーとしてください)

【① ②を合わせた関数】
=IF(AND($C4<=F$3,$D4>=F$3,$E4=1),”〇”,””)

工程表(ガントチャート)の作り方

100%を指定した行(完了した行)にのみ「〇」が設定されました。ではこの条件を「新たな条件」として条件付き書式に追加します。
「F4」を先頭に、明細行を選択し、「ホーム」タブ>「新しいルール」を選択してください。
「数式を使用して、書式設定するセルを決定」を指定し、先ほど作成した関数の「条件部分」を設定します。
設定後「書式」の「塗りつぶし」より、背景色を設定しましょう。

【「完了」条件を追加した関数の「条件部分」】
=AND($C4<=F$3,$D4>=F$3,$E4=1)

工程表(ガントチャート)の作り方

条件付き書式の設定より、以下のように完了したタスクに対する背景色が設定されます。
調査に使用した関数は後で消してください。

工程表(ガントチャート)の作り方

休日に対する背景色の設定

次に休日の設定を行います。ここも条件を機械的に考えてみましょう。

【条件】
① 曜日の行(2行目)が「土」
② 曜日の行(2行目)が「日」
③ 曜日の行(2行目)が「祝」

内容が似ていますので、ひとまとめに関数を紹介します。

【①~③に対する関数】
①=IF(F$2=”土”,”〇”,””)
②=IF(F$2=”日”,”〇”,””)
③=IF(F$2=”祝”,”〇”,””)


今回の場合「AとBに一致する(AND)」ではなく「AまたはBに一致する」(OR)を指しますので「OR」関数を使用します。
では各関数を合わせてみましょう。設定後、横にオートフィルで数式をコピーしてください。(コピーする際は「書式なしコピー」を選択してください)
「祝」に〇が表示されるか確認するために「4/5」に「祝」を設定してください。

【①~③を合わせた関数】
=IF(OR(F$2=”土”,F$2=”日”,F$2=”祝”),”〇”,””)

工程表(ガントチャート)の作り方

休日部分が特定できる数式が作成できました。次に「条件付き書式」の設定を行います。
F3」(カレンダー部分含む)を先頭に、明細行を選択し、「ホーム」タブ>「新しいルール」を選択してください。
「数式を使用して、書式設定するセルを決定」を指定し、先ほど作成した関数の「条件部分」を設定します。
設定後「書式」の「塗りつぶし」より、背景色を設定しましょう。

【休日判定の関数の「条件部分」】
=OR(F$2=”土”,F$2=”日”,F$2=”祝”)


この時、「塗りつぶし」の他に「パターンの色」「パターンの種類」を設定することをお勧めします。
これにより、通常より背景色を薄い色に設定することができ、通常の「背景」と異なるという意図を伝えることができます。

工程表(ガントチャート)の作り方
条件付き書式の設定より、以下のように休日に対する背景色が設定されます。
調査に使用した関数は後で消してください。
工程表(ガントチャート)の作り方

利用するための最終調整

最後に微調整を行います。以下を参考に調整をお願いします。

・「曜日」(2行目)は条件の判断に利用しているため、非表示にする。
・「作業名」「担当者」の文字サイズ等を確認し、必要に応じてサイズ調整を行う。
・印刷して出力する場合もあるため、印刷設定を行う。(印刷による確認も忘れず行う)

工程表(ガントチャート)の作り方

まとめ

いかがだったでしょうか。このようにExcel機能だけで工程表を作成することができることがわかりました。
一つ一つ分解して説明しておりますので、作業が長く感じたかもしれません。しかし、実際には同じ機能を繰り返して利用していますので、慣れればさほど時間をかけずに作成することができます。ぜひお試しください。

・条件は機械的に分解する。
・条件付き書式を設定する前にExcel上で計算式の確認を行う。
・「パターン」利用より背景色に意味を持たせる。