『マクロで稼働日を考慮して日程を自動入力』(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)