こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

よろしくお願いします。

投稿日時 - 2019-08-17 17:18:37

QNo.9646606

困ってます

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

> 関数とかマクロは使わないんですよね?
はい
たとえば
添付された画像だと(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 書式設定を赤
画像のようになると思います。

 

投稿日時 - 2019-08-18 11:27:16

お礼

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

投稿日時 - 2019-08-20 21:00:49

ANo.4

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

#7です。
#7の回答の後半が、エクセル関数の形式を使ったためゴチャゴチャしていて、気に食わなかったので、改良してみました。
本件は 「..FormatConditions.Add(xlCellValue, xlBetween,..」の利用です。
ーー
・A1:G1 製番マーシャ開始マーシャ終了払い出し着工試験出荷
の見出し文字列を入れる
・H1セルに2019/8/1 日付を入れる(日付シリアル値)
・H1セルでプラス+ハンドルを出して右方向にAW1まで引っ張る(1日刻みの日付が入る)
・H1:AW1を範囲指定して、AW1でプラスハンドルを出して、下方向に引っ張る。本件では、第7行目までのサンプルとする。
結果H2:AW7までのセルには日付が入る。
ーー
データ例
・核心のデータが下記の通り A1:G7
製番マーシャ開始マーシャ終了払い出し着工試験出荷
ABC1011008/18/58/68/78/159/1
ABC1011038/38/78/78/88/169/3
ABC1011058/68/98/98/108/179/7
ABC1011088/78/118/118/128/209/7
ABC1011108/108/158/178/198/269/10
ABC1011128/118/158/168/178/259/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など。

投稿日時 - 2019-08-20 15:25:24

ANo.7

VBAの回答しても質問者の意向に沿うか、判らないが、個人的に、やってみたので挙げてみる。
ーー
1製品分しか対象にしてない。
製品が複数になった時、対象の日付が右の列にどんどん伸びるが、シートを
見にくいのでは。
製品ごとに、受注製品と受注期間の日付を、受注品ごとに持ったほうが良いように感じた。
この点も、質問者はよく考えたのかどうか、質問文に明確でない。
また、1受注製品例しか質問に挙げてないのが理由。
ーー
質問の図データをまねて、下記でやった。
データは
(1)A1:G2に
製番マーシャ開始マーシャ終了払い出し着工試験出荷
ABC1011008/18/58/68/78/159/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)(初心者みたいに見える者がやるべき課題ではなくて)プロに頼んで作ってもらうべき、分野だろう。他の要素(材料手配や請求など)も抱合して。

投稿日時 - 2019-08-19 13:15:04

ANo.6

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

=$B6=H$5 罫線左
です。

投稿日時 - 2019-08-18 12:23:25

ANo.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 罫線左右

投稿日時 - 2019-08-18 12:10:04

ANo.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
 ̄ ̄ ̄ ̄ ̄ ̄書式→ 赤の塗りつぶし色

投稿日時 - 2019-08-18 11:14:28

ANo.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

投稿日時 - 2019-08-17 18:18:21

お礼

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

投稿日時 - 2019-08-18 09:34:13

ANo.1

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

投稿日時 - 2019-08-17 18:11:57

あなたにオススメの質問