解決済

clip!clip!
Ads By Google

VBAでWORKDAY関数が使えない場合はどうすればよいでしょうか?

仕事上の取引先との納品とかの都合上で業務効率化のためにエクセルでいろい
ろツール作りをしているのですが困っているので教えて下さい。
日付が縦列に入っているセルがあるのですが西暦、月、日、曜日は全て別々の
セルに入っております。(例:セルA1に西暦、セルA2に月、セルA3~A34まで
日、セルB3~B34は曜日)
セルC列は空白(後で理由を示します)
セルD列には納品日のを表示する7稼働日後の西暦&月日&曜日を入れたいで
す。
WORKDAY関数を使えばよいかとも思うのですが、取引先にも確認用で配る、社
内でもPCに疎い人がいる、私自身アドインがよくわからないですし上司にむや
みやたらに取引先PCにインストールを促すのはよくないということで却下され
ています。
良い方法はないでしょうか?ヒントをいただければと思います。
また、セルA1の西暦は別シートのVBA処理から引っ張ってきています。また、
曜日は=TEXT($A$1・・・・"aaa")で得てしまっていますが・・・
空白C列には商品在庫が確認できた時にOKを入れる欄です。
OKを入れるとD列の納品日が入ればよいです。
皆様よろしくお願いいたします。

2008-03-17 23:31の質問
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。

回答(3)

1.

2008-03-18 00:49:04みんなナイスな
VBAなしで普通にExcelの関数で書くのが一番トラブルは少ないのではないでしょうか。祝日を別のシートに作っておいて、土日+祝日を判断すればOKですよね。とはいえ、祝日シートの作成は結構めんどいので、↓のようなもは如何でしょうか?

2.

2008-03-18 06:59:02みんなナイスな
A3~A34の日付ですが、表示だけ日にちにして、年月日を持つようにしたら、良いかと思います。そのために月の入力のA2は月日を示す「3/1」を入力して、表示は月のみにするのです。
C列のOKはリストから選択するようにしたら良いですね
エクセルのシートに埋め込んでる関数であれば、WORKDAY関数を使っても、問題はないはず。
実稼働日っていうことは、休日の定義を他のシートで書いておく必要がありますね。
定休日方式なら、7稼働日は9日後になりますので、その他の休日がその間に入っている場合のみ休日加算するようにする。
回答レベル : アドバイス

3.

2008-03-18 19:42:30みんなナイスな
休日はころころ変わるのでメンテナンスが大変です。
Auto_Openで素直に分析ツールを組み込んだ方が良いでしょう。
しかし、処理が終わればAuto_Closeで、Excelの元のアドイン状態に復帰させてやるのです。


Option Explicit

Dim b_BunsekiTool As Boolean

Sub Auto_Open()
   '現在のExcelに分析ツールが組み込んであるかどうか、フラグに保存する。
   b_BunsekiTool = AddIns("分析ツール").Installed
   'もし分析ツールが組み込んでなければ組み込む
   If b_BunsekiTool = False Then
       AddIns("分析ツール").Installed = True
   End If
End Sub

Sub Auto_Close()
  'Bookを開く前の分析ツールアドイン状態に戻してやる
  AddIns("分析ツール").Installed = b_BunsekiTool
End Sub
Ads By Google

コメント(2)

2008-03-18 23:26:14

ちなみに、うちの会社の定休日は、暦とおりでなく、会社で設定した休日が定休日になるので、毎年2月に新年度の休日が発表になるで、年度毎の休日管理で、十分対応できます。

2008-03-20 02:41:33

そうですね。
土日が休みの会社ばかりじゃありませんね。

トラックバック(2)

トラックバックURL: