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

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

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

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Q&A

解決済

3回答

4361閲覧

スケジュール表作成 工数負荷を見える化

mimatama

総合スコア12

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

1グッド

1クリップ

投稿2016/10/11 15:03

###前提・実現したいこと
Excelを使用したスケジュール表を作成をしています。
その表を利用し、各部署に対してどのくらいの負荷(週ごと)が掛かっているかという計算を行うマクロの作成を試みています。

メインとなるスケジュール表から、
必要な情報として
・予定工数
・納期
・部署名 (一つの部署に対して複数の案件あり)

上記を別のシートに転記するところまでは出来たのですが、
その先どうしたらいいか検討がつきません。
ソート機能などを利用し、計算をして別シートへ転記という道筋は思いついたのですが・・・

どのような関数を使用していいのかがわかりませんでした。

条件としては下記のような形になります。
・一日の工数を8Hとして計算
・工数の配賦は納品日の一日前からスタート(土日祝は除く)
・配賦した工数を週ごとに集計し、各週の頭(月曜日が祝日の場合火曜日)毎に工数を出す。

例:納期10/14で工数が40の件場合
10/13から一日ずつ遡る(土日祝除く)
結果として→
10/11の週 24H
10/3の週 16H
上記のような形で週間の工数がわかるような表を作りたいと考えています。

結果を出すシートにはどの部署に、週毎の工数がどれくらいかかっているかわかれば形はなんでも大丈夫です。
シートの作成の発生はマクロボタンを使用する形です。

ご教授いただければと思います。
よろしくお願い致します。

###発生している問題・エラーメッセージ

エラーメッセージ

###該当のソースコード

###試したこと
土日祝を除く方法としては:WORKDAY.INTL 関数を使用しています。

###補足情報(言語/FW/ツール等のバージョンなど)
Windows7
Excel2013

ryo👍を押しています

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

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

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

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

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

guest

回答3

0

丸投げのような質問なので答えることはできないのですが、フリーのスケジュール管理があるので使ってみてはいかがでしょうか。
要件にあっているかはご自身で確認してみてください。
http://zudajijp.zouri.jp/km/index.html
大規模なプロジェクトになると少々使い勝手が悪くなりますが、使いこなせば結構使えます。

投稿2016/10/12 00:04

ttyp03

総合スコア16996

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

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

0

ベストアンサー

例えば以下のような形のシートだったとすると、以下のような形でどうでしょうか?
工数が8で割り切れない工数がある場合は、もう少し調整が必要ですが。
予定工数と、納期のデータを読み込み、納期の下に、どの週にどの程度の負荷がかかるのかを表示するようにしています。
イメージ説明

VBA

1Dim x, y, i As Integer 2Dim lim, last, start As Integer 3 4'工数 5x = WS.Cells(2, 3) 6'i週間のカウント 7i = 0 8'納期 9lim = WS.Cells(3, 3) 10last = lim 11 12Do While x > 0 13 14y = 0 15 16'土日の場合はスキップ 17Do While Weekday(last) Mod 7 < 2 18last = last - 1 19Loop 20 21'どの週のデータかを記載 22WS.Cells(4 + i, 3) = last - (Weekday(last) - 2) 23 24'月~金曜日の時間数をカウント 25Do While Weekday(last) Mod 7 > 1 26last = last - 1 27x = x - 8 28'週間工数の確認 29y = y + 8 30 If x = 0 Then 31 Exit Do 32 End If 33Loop 34 35'週の工数を記載 36WS.Cells(4 + i, 4) = y 37i = i + 1 38Loop 39 40End Sub

ちなみに10/13からスタートした場合、以下のようになります。

投稿2016/10/11 23:49

cesolution

総合スコア217

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

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

mimatama

2016/10/12 06:07

コードのご提示ありがとうございます。 祝日を除いた状態で計算を行いたいと考えているので、 教えていただいたコードを参考に作成してみます。 ありがとうございました。
guest

0

Excel工数管理実践編Excelのダウンロード付きを利用しては?

投稿2016/10/11 15:13

Orlofsky

総合スコア16415

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

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

mimatama

2016/10/11 15:18

確認してみます。 情報ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問