質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

960閲覧

ガントチャート工程表をVBA及び条件付き書式にて作成したい

9211hirati

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/04/13 06:35

閲覧して頂きありがとうございます。
仕事で必要に迫られ作成を依頼されましたが、構想が複雑になりすぎて上手く出来ません。
なにかいい案がありましたらご教授願えればと思います。

【基本仕様】
①表示期間は最大6ヶ月間
②日にち単位で表示
③作業期間はセルの塗り潰しにて表現
④セルの塗り潰しは3色(予定(青)・予定変更(緑)・実施(赤))
⑤横軸(作業内容)にて開始日/終了日を入力するとその期間のセルが塗り潰しされる
⑥同じ行内に複数の塗り潰しが発生する場合がある(例:4/13~4/15と4/18~4/20)
⑦別シート(configシート)等で休日を設定したらその日はグレーで塗りつぶし
⑧セルの塗り潰しの数をカウントし進捗グラフにもちいる

以上が最低限やりたいことです。余裕があれば行の追加もボタンを使用して行えればと考えています。

最初は、条件付き書式でセルの塗り潰しを行うつもりでしたがそれだと、⑥の時に開始、終了を複数作らなくてはいけないのでマクロにて
Private Sub CommandButton1_Click()
Dim r As Range
For Each r In Range("H6:EM200")
If Cells(4, r.Column) >= Cells(r.Row, 5) And Cells(4, r.Column) <= Cells(r.Row, 6) Then
r.Interior.Color = RGB(0, 255, 0)
End If
Next
End Sub

にて代替えしましたが、今度は④の色分けが上手くいかず、上記のFor Each r In Rangeを細かく設定することになってしまい、FormatConditions.Addを使って私の希望することが出来ないかなぁとの状態になっています。
それ以外の部分も基本仕様でネックになりそうな箇所あれば教えて頂ければ幸いです。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

途中まで頑張ったけど、まだまだ先は長そう。
イメージ説明

投稿2021/04/13 13:38

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

作業をセルにはめていては、将来、ふくらんでくるである要望に対処しきれない気がします。
VBAはオブジェクト指向ではありませんが、Typeで構造体がつくれます。
1つのTypeで、ひとつの作業の全情報を保管できるようにして、
シート上では作業ひとつをひとつのShape(図形・四角形)で表すようにするのはいかがでしょうか。

投稿2021/04/13 10:28

編集2021/04/13 10:30
FromMZ1500

総合スコア496

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問