[[20101105224606]] 『マクロで稼働日を考慮して日程を自動入力』(hana) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロで稼働日を考慮して日程を自動入力』(hana)

日程作成をマクロで行いたいと思っています。

(エクセル2003です)

       A      B      C      D

 1│工程A│工程B│工程C│工程D│

  −−−−−−−−−−−−−−−

 2│   │   │   │   │

というシート1があり、シートに下記のようなカレンダーがあります。

    A     B

1│10/13│稼動

2│10/14│休日

3│10/15│稼動

4│10/16│稼動

5│10/17│休日

6│10/18│休日

7│10/19│休日

8│10/20│稼動

工程Dの日付を任意で入力し、マクロを実行すると工程A〜Cの日付を各後工程

(工程Aなら工程B)の−1稼働日休日を自動で入力されるようにしたいです。

例えば工程Dに10/20を入力すると、

工程Cは10/16、工程Bは10/15、工程Aは10/13です。

マクロは使ったことが無かったので、

WEB等で検索し無理矢理途中まで書いてみましたが

休日が2日以上続く場合にどう書くか悩んでしまいました。

(おそらくLOOPとかを使う?と思ったのですが・・・)

下記、途中まで考えたマクロです。

Sub 日程作成()

Dim 工程Dの日 as Date

Dim 工程Dの日-1日 as Date

Dim 工程Dの日-1日の稼働日判定 as String

工程Dの日 = Range("D22)

工程Dの日の-1日 = Range("D22")-1

工程Dの日-1日の稼働日判定 =Application Worksheet Function.VLookUP(工程Dの日-1日,Worksheet("カレンダー").Range("A1:B8"),2,0)

If 工程Dの日-1日の稼働日判定="稼動"

Range("C2").Value = 工程Dの日-1日

Else

ここまで書いてみましたが・・・。

上記も慣れている方からしたら意味不明かもしれません。

すみませんが、是非知恵をお貸しください。


 いくつか注意点ですが、変数に「-」は使えません。

 もしコードの作成をテキストエディタで行っているのであれば、

 VBE を使用したほうが良いと思います。

 文法的な間違い(.の抜け、" の不整合など)は、かなりそこで減らすことが

 できます。

 で、本論ですが、

 ・説明に使用されている表とコード状のセルの位置が一致しません。

 ・シート名は「カレンダー」と「シート1」でしょうか。

 ・工程は必ずA〜Dで、入力されるのは工程Dだけなのでしょうか。

 また、

 ・入力された工程Dは必ずカレンダー上で稼働日であり、

 ・カレンダーには工程Aまでの日程が必ずあると保障されている

 という前提でかんがえてよいのですか?

 (Mook)


 カレンダーを「稼働日のみのカレンダー(休日は不要)」 にできれば簡単になると思いますが。(NB)

 シート2

     A     B

1│10/13│稼動

2│10/15│稼動

3│10/16│稼動

4│10/20│稼動

 Sub 日程作成() 

  Range("A2:C2").FormulaR1C1 = "=INDEX(Sheet2!R1C1:R300C1,MATCH(RC[1],Sheet2!R1C1:R300C1,0)-1)"

 End Sub

     (NB)

 削除されていたので、復元(kazu)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.