- ベストアンサー
エクセルでスケジュール管理 - 社内スケジュールを週間予定表に変換する方法
- 社内のスケジュール管理には、エクセルシートが使用されています。
- 現在のスケジュール表から週間予定表を作成する方法を知りたいです。
- また、自動的に週間予定表を更新するマクロも作成したいと考えています。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No2です(週間予定のほうです) Sub test() Dim first As Date Dim last As Date Max = Cells(65536, 1).End(xlUp).Row first = InputBox("日付入力") last = first + 7 For i = 2 To Max If Sheets("sheet1").Cells(i, 1) >= first And Sheets("sheet1").Cells(i, 1) <= last Then Sheets("sheet2").Cells(i, 1) = Sheets("sheet1").Cells(i, 1) Sheets("sheet2").Cells(i, 2) = Sheets("sheet1").Cells(i, 2) Sheets("sheet2").Cells(i, 3) = Sheets("sheet1").Cells(i, 4) k = 1 For j = 6 To 19 If Cells(i, j) = "○" Then Sheets("sheet2").Cells(i, 3 + k) = Sheets("sheet1").Cells(1, j) k = k + 1 End If Next End If Next End Sub
その他の回答 (3)
- toshi_2000
- ベストアンサー率30% (306/1002)
>毎週月曜日の日付けを入力すると、自動で週間予定ができるようなマクロも作っていきたい 毎週月曜日には、必ず予定がありますか。 それから月毎のシートのは、日付順ですか。
- toshi_2000
- ベストアンサー率30% (306/1002)
まず一つ目。 Sub test() Max = Cells(65536, 1).End(xlUp).Row For i = 2 To Max Sheets("sheet2").Cells(i, 1) = Sheets("sheet1").Cells(i, 1) Sheets("sheet2").Cells(i, 2) = Sheets("sheet1").Cells(i, 2) Sheets("sheet2").Cells(i, 3) = Sheets("sheet1").Cells(i, 4) k = 1 For j = 7 To 19 If Cells(i, j) = "○" Then Sheets("sheet2").Cells(i, 3 + k) = Sheets("sheet1").Cells(1, j) k = k + 1 End If Next Next End Sub
》 各行ごとに○がついている社員名を別のセルに表示 》 したい… 「別のセル」では曖昧過ぎます。何処にどのように表示させたいのか例示してください。 》 自動で週間予定ができるようなマクロも… なぜマクロなのですか?関数では駄目?
補足
各行の右端の空白1セルに、参加社員の名前を表示させたいんですが。週間予定にしたとき、全員の名前が横並びになって、○がはいったままでは見にくいので、1セルに名前が表示されるようなセルを作りたいのです。 関数でもマクロでもOKです。
補足
予定のない月曜日もあります。 月シートは1日から日付順です。