• ベストアンサー

エクセルの進捗表作成について

エクセル2010で、製番工程表を作成したのですが、 各項目の日付を入力したら、写真のように期間に色が付いたり、 または矢印が自動的に表示できるようにしたいのですが、 どうしたらよいでしょうか? 全部で30製番あるので、それを一つ一つ手動で色や線を引くのが面倒です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.4

> 関数とかマクロは使わないんですよね? はい たとえば 添付された画像だと(1,2,3…は日付2019/8/1から2019/9/2まで入れて表示をdにしてください) 色を付けたい範囲を全て選択して H6:AN23 の範囲とかです 「数式を使用して」で以下のようにすれば(それぞれひとつずつ5個作ります) =AND($B6<=H$5,$C6>=H$5) 書式設定を黄色 =$D6=H$5 書式設定を緑 =AND($E6<=H$5,$F6-1>=H$5) 書式設定を青 =AND($F6<=H$5,$G6-1>=H$5) 書式設定をオレンジ =$G6=H$5 書式設定を赤 画像のようになると思います。  

ctrpegdj9yif1xm
質問者

お礼

回答ありがとうございます。 「条件付き書式設定」理解しました。 とても簡単で、思っていたことができました。

その他の回答 (7)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.8

#7です。 #7の回答の後半が、エクセル関数の形式を使ったためゴチャゴチャしていて、気に食わなかったので、改良してみました。 本件は 「..FormatConditions.Add(xlCellValue, xlBetween,..」の利用です。 ーー ・A1:G1 製番 マーシャ開始 マーシャ終了 払い出し 着工 試験 出荷 の見出し文字列を入れる ・H1セルに2019/8/1 日付を入れる(日付シリアル値) ・H1セルでプラス+ハンドルを出して右方向にAW1まで引っ張る(1日刻みの日付が入る) ・H1:AW1を範囲指定して、AW1でプラスハンドルを出して、下方向に引っ張る。 本件では、第7行目までのサンプルとする。 結果H2:AW7までのセルには日付が入る。 ーー データ例 ・核心のデータが下記の通り A1:G7 製番 マーシャ開始 マーシャ終了 払い出し 着工 試験 出荷 ABC101100 8/1 8/5 8/6 8/7 8/15 9/1 ABC101103 8/3 8/7 8/7 8/8 8/16 9/3 ABC101105 8/6 8/9 8/9 8/10 8/17 9/7 ABC101108 8/7 8/11 8/11 8/12 8/20 9/7 ABC101110 8/10 8/15 8/17 8/19 8/26 9/10 ABC101112 8/11 8/15 8/16 8/17 8/25 9/11 ーー 標準モジュールに、下記VBAコードをコピペ。 Sub test03() '--条件付き書式の削除 Range("H2:Aw11").FormatConditions.Delete '--- Dim fc As FormatCondition '--色の指定テーブル cl = Array("", 4, 6, 7, 8, 22, 47) '--- For i = 2 To 11 '2行から10行まで繰り返し For j = 2 To 7 'B列からG列まで繰り返し If j <> 7 Then 'B-F列 Set fc = Range(Cells(i, "H"), Cells(i, "Aw")).FormatConditions.Add(xlCellValue, xlBetween, Cells(i, j), Cells(i, j + 1) - 1) fc.Interior.ColorIndex = cl(j - 1) Else '---G列 Set fc = Range(Cells(i, "H"), Cells(i, "Aw")).FormatConditions.Add(xlCellValue, xlBetween, Cells(i, j), Cells(i, j)) fc.Interior.ColorIndex = cl(6) End If Next j Next i End Sub ーー 実行 結果は、各々の対応した日付範囲に色が着く。 === 質問者のニーズに合っているか、また合わないとき、修正できるか、心配だが。 これぐらいだと、実質はVBAのコードが5-6行で、VBAの威力を感じた次第。 ーー もし、セルの日付文字を見えなくするには、文字フォントを「白色」に設定すれば、見かけ上、見えなくなる。H2:AW7など。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

VBAの回答しても質問者の意向に沿うか、判らないが、個人的に、やってみたので挙げてみる。 ーー 1製品分しか対象にしてない。 製品が複数になった時、対象の日付が右の列にどんどん伸びるが、シートを 見にくいのでは。 製品ごとに、受注製品と受注期間の日付を、受注品ごとに持ったほうが良いように感じた。 この点も、質問者はよく考えたのかどうか、質問文に明確でない。 また、1受注製品例しか質問に挙げてないのが理由。 ーー 質問の図データをまねて、下記でやった。 データは (1)A1:G2に 製番 マーシャ開始 マーシャ終了 払い出し 着工 試験 出荷 ABC101100 8/1 8/5 8/6 8/7 8/15 9/1 と、各セルに入力されているとする。 (2)H1:AM1までについて、上記VBAプログラムで、8/1から9/1までの日付を入力する。(日付シリアル値、そして書式設定で、8/1などのように見せている。重要点) ーー 結果 プログラム実行すると H2からAM2せるまでセルの塗りつぶしの色が設定される。 色は小生が決めさせてもらった。 ーーー この方法は、エクセルの「条件付き書式」の機能でセルに色づけしたもの。 標準モジュールに Sub test03() '--条件付き書式の削除 Range("H2:AM2").FormatConditions.Delete '--準備作業 For i = 1 To 8 Cells(2, i).NumberFormat = "m/d" Next i '-- For i = 8 To 39 Cells(1, i).ColumnWidth = Cells(1, i).Height / 5 Cells(1, i) = DateSerial(2019, 8, i - 7) Cells(1, i).NumberFormat = "d" Next i For Z = 2 To 2 ' Zは行番号 Set Rng = Range("h" & Z & ":AM" & Z) '---マーシャ Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(H$1>=$B$" & Z & ",H$1<=$C$" & Z & ")" With Rng.FormatConditions(1).Interior .Color = vbYellow .TintAndShade = 0 End With '---払い出し Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=H$1=$D" & Z With Rng.FormatConditions(2).Interior '2に注意 以下1つずつ増やす .Color = vbGreen End With '---着工中 Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(H$1>=$E" & Z & ",H$1<$F" & Z & ")" With Rng.FormatConditions(3).Interior .Color = vbBlue End With '---試験中 Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=AND(H$1>=$F$" & Z & ",H$1<$G" & Z & ")" With Rng.FormatConditions(4).Interior .ColorIndex = 7 ' = RGB(255, 102, 0) End With '---出荷 Rng.FormatConditions.Add Type:=xlExpression, Formula1:="=H$1=$G" & Z With Rng.FormatConditions(5).Interior .Color = vbRed End With Next Z End Sub ーー 質問の説明のしぶりや、図から推測して、こんなものを作っても、実際の仕事に役立つかどうか疑問と思った。 進捗「管理」とかカッコよくいっているが、受注処理のタイム予定図でしかないのでは? == 操作やVBAでやるのでなく、 (1)出来合いのソフトを探すか (2)(初心者みたいに見える者がやるべき課題ではなくて)プロに頼んで作ってもらうべき、分野だろう。他の要素(材料手配や請求など)も抱合して。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.6

No5訂正です。 =B$6=H$5 罫線左 は =$B6=H$5 罫線左 です。

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.5

No4の追加です。 罫線も入れたい場合は 以下を追加です。範囲を選択した状態でです。 =B$6=H$5 罫線左 =$C6=H$5 罫線右 =$D6=H$5 罫線左右 =$E6=H$5 罫線左 =$F6-1=H$5 罫線右 =$F6=H$5 罫線左 =$G6-1=H$5 罫線右 =$G6=H$5 罫線左右

  • msMike
  • ベストアンサー率20% (363/1775)
回答No.3

添付図参照 1.セル H4 に 2019/8/1 を、セル H5 に式 =H4 を、それぞれ入力 2.式 =H4+1 を入力したセル I5 を下1行にオートフィルした後で、  ̄ ̄範囲 I5:I6 を右方にズズーッと好きなだけ(此処では仮に AS列  ̄ ̄までとしておく)オートフィル 3.範囲 H4:AS4 を [$-en-US]mmm に、範囲 H5:AS5 を dd に、  ̄ ̄それぞれ書式設定 4.範囲 H4:AS4 に下記の[条件付き書式]を設定  ̄ ̄ルールの種類: “数式を…を決定”  ̄ ̄ルールの内容↓  ̄ ̄ ̄ ̄数式→ =DAY(H4)<>1  ̄ ̄ ̄ ̄書式→ 白のフォント色 5.範囲 H6:AS6 に下記の[条件付き書式]を設定  ̄ ̄ルールの種類: “数式を…を決定”  ̄ ̄ルールの内容↓  ̄ ̄ ̄ ̄条件1  ̄ ̄ ̄ ̄ ̄ ̄数式→ =AND(H$5>=$B6,H$5<=$C6)  ̄ ̄ ̄ ̄ ̄ ̄書式→ 黄の塗りつぶし色  ̄ ̄ ̄ ̄条件2  ̄ ̄ ̄ ̄ ̄ ̄数式→ =AND(H$5>=$D6,H$5<$E6)  ̄ ̄ ̄ ̄ ̄ ̄書式→ 緑の塗りつぶし色  ̄ ̄ ̄ ̄条件3  ̄ ̄ ̄ ̄ ̄ ̄数式→ =AND(H$5>=$E6,H$5<$F6)  ̄ ̄ ̄ ̄ ̄ ̄書式→ 青の塗りつぶし色  ̄ ̄ ̄ ̄条件4  ̄ ̄ ̄ ̄ ̄ ̄数式→ =AND(H$5>=$F6,H$5<$G6)  ̄ ̄ ̄ ̄ ̄ ̄書式→ 橙の塗りつぶし色  ̄ ̄ ̄ ̄条件5  ̄ ̄ ̄ ̄ ̄ ̄数式→ =H$5=$G6  ̄ ̄ ̄ ̄ ̄ ̄書式→ 赤の塗りつぶし色

  • kkkkkm
  • ベストアンサー率65% (1618/2457)
回答No.2

色付けは条件付き書式でできます。ガントチャートで検索したら色々出てくると思いますが。 一応マイクロソフトのテンプレートを参考までに。 https://templates.office.com/ja-jp/%e3%82%ac%e3%83%b3%e3%83%88-%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e8%a8%88%e7%94%bb%e3%82%b7%e3%83%bc%e3%83%88-tm02887601?omkt=ja-JP

ctrpegdj9yif1xm
質問者

お礼

回答ありがとうございます。 「条件付き書式」調べてみます。 関数とかマクロは使わないんですよね?

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

済みません。説明が難しいので、条件付き書式の数式を使うということで考えてみてください。

関連するQ&A

  • 表作成

    エクセルで工程表を描いていますが、斜めの線がオートシェイブで上手く描けません。出来ないことはないのですが、簡単に速く描ける方法ありましたら。お願いします。

  • 工程表作成 Word

    Wordで工程表を作成したいのですが、 工程の線がうまく書けません。。。 一項目に2本線を書きたいのですが、 幅がバラバラになってしまいます。 20項目位すべて同じ幅で線を書きたいのですが、 どうすればキレイにできますか???

  • エクセルで、日付の期間表をカレンダー形式におとしたい

    ある場所の使用予約期間の エクセルで作った日付で期間を表した表、 たとえば5月23日~6月2日のようなもの (日付は1セルごと)を カレンダー形式の見やすい表に変えたいのです。 カレンダーでその予約期間に色が付くとか●が入るとか できないでしょうか? もちろん上記の日付を修正した場合はカレンダーのほうも 自動的に変更されるということにしたいです。 どうかご教示お願いいたします。

  • こんな表をつくりたい(エクセルorアクセス?)

    アウトルックの「履歴」みたいな感じで 横軸に日付、縦軸に項目、そして、日付の行には数字を記入する、そして、日付や項目などで集計分析がしたい。そして例えばこの項目は、いつからいつまで数字が記入されているということが視覚的にもわかるようにしたい。エンドレスの工程表みたいなイメージでしょうか。 短期間ならばエクセルで簡単にできそうですが、データ数が多くなればアクセスの方がよいのでしょうか?ちなみに横軸(日付)は数年程度。縦軸(項目)は1日当たり平均10件程度を予定しています。 問題 1.横軸に日付をとろうとすると、エクセルでは256列しか記入できない(1日1列として、1年365日分記入できない)。月ごととかにシートを分割したくない。年数を気にせずデータ作成したい。 2.縦軸、横軸を逆にすれば、成立しそうだけど 項目には文章を入れたいので、表が間延びすると思う。そんなに長い文章は記入しないので、セルの縮小などはしたくない。 以上、よろしくお願いします。ちなみにエクセルは関数程度、アクセスは未経験です。

  • エクセルで日付・曜日の入った表の作成方法が知りたい

    エクセルで毎月の曜日と日付が入った表を作成したいです。 5月 1  火 2  (水) 3  (木) 4  (金)   5  (土) 6  (日)    ・    ・    ・ 31 木 エクセル初心者です。 ↑上記のように、毎月、日付と曜日が入った表を作成しています。 この表は、土日・祝は色を赤色にし、()をつけてわかりやすくしなければなりません。 毎回手書きで作成しているのですが、簡単に作成できる関数などはありませんか? たとえば、2012年5月などと入力したら自動的に日付と曜日が入り、土日祝は赤色で()がつくように したいんですが、難しいでしょうか? 回答よろしくお願いいたします。

  • エクセルでシートから日付を取り出し表を作成

    エクセルに日付の入ったデータがあるシートから日付データを取り出し自動で表にまとめたい。 (簡単に言うと日付データを使ってスケジュール管理をしたい) 何かいい方法はあるのでしょうか?

  • エクセル2003で日付等をソートしたい

    エクセル2003で日付等をソートしたいのですが、簡単に設定できますか?? 表のA1に日付というセルを作りました。その下から日付がずらっと並んでいるのですが、その日付はランダムで、上から若い順に並び替えたいです。 毎回、手動でするのではなくて、A1セルにボタンをつけて、カチッとクリックするだけで並び替えをしたいです。 たまに見かけるのですが、セルの右端に灰色の矢印の付いたボタンみたいなのが、そうだと思います。

  • エクセル 表の集計

    エクセルは2017です。 〇いままでのやりかた(添付写真をみてください) 1.会社の基幹システムから製番と回答納期、発注数(オーダー数)、個数をダウンロードします。(実際のリストはもっと項目があり、オーダー数は30,000件になります。)なので必要なのを抜粋しています。 2.ピボットで表を集計します。(添付写真右側) 3.自分で作成した必要な製番だけのリスト(添付写真中央)を作成し、関数を使って日ごとのオーダー数を表示させてます。 〇やりたいこと ・マクロを使って1ボタンで自分の作成したリストにオーダー数をいれたい。 1→基幹システムから任意のホルダーにリストを保存 2→自分で作成したリストに「集計」ボタンがありそれをクリック 3→保存先を聞いてきてリストが保存してあるフォルダーを選択 4→フォルダー内にあるリストを選択すると自動的に自分で作成したリストに数字がはいる。 よろしくお願いします。

  • Excelにて一覧表から集計表の作成

    Excelにて、下記の表a.から表b.を作成したいのですが 関数等使用してスマートに自動生成できないものでしょうか? 表a.一覧表 項目1,項目2 "AAA","あああ" "BBB","あああ" "BBB","いいい" "CCC","ううう" 表b.集計表 ××××,"AAA","BBB","CCC" "あああ", 1, 1, 0 "いいい", 0, 1, 0 "ううう", 0, 0, 1

  • エクセルでスケジュール表作成

    いつもお世話になっています。 エクセル(オフィスXP使用)でスケジュール表を作成しています。 日付は一番初めのセルに日付を入力すると自動的に日数が入力されるよう計算式を(隣のセル+1)で作成しています。1Pに月曜始まりで2週間分の日数が入っています。曜日は固定なのでWEEKDAY関数は使っていません。(直接曜日を入力しています)土日は網掛けをしています。 以上のスケジュール表で、自動的に祝日を判別し、セルの色を変えたいのですが方法はありますか?出来れば祝日の曜日欄には自動的に祝日と入るようにしたいのですが・・・。条件付書式などを組み合わせてなんとか1ヶ所入力すると全て自動で行えるように出来ないでしょうか?どの関数を組み合わせればよいか、もしくは別の方法(シートを別に作成し、祝日だけを入力すると、スケジュールのシートが自動的に変わったり・・・)など、ありましたら教えていただけると助かります。 宜しくお願いします。

専門家に質問してみよう