勤務表をカレンダーへ転記するには? | |
---|---|
[195338] 勤務表をカレンダーへ転記するには?- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ パンダ -(2022/10/25(15:38)) □U R L/ この度、大変お世話になります。 予め下記の2つのシート名(勤務作成、カレンダー)が存在します。 シート名:勤務作成 A B C D E F G H … AF 1 10月 1 2 3 4 5 6 7 … 31 2 曜日 土 日 月 火 水 木 金 … 月 3 名前 4 あ 1 1 1 5 い 1 1 6 う 1 1 7 え 1 1 8 お 1 1 シート名:カレンダー A B C D E F G 1 10月 2 日 月 火 水 木 金 土 3 1 4 5 6 7 2 3 4 5 6 7 8 8 9 10 11 12 9 10 11 12 13 14 15 13 14 15 16 16 17 18 19 20 21 22 17 18 19 20 23 24 25 26 27 28 29 21 22 23 24 30 31 25 26 27 @勤務作成のシートに一人一人職員が出勤する日は数字の1を入力済とします。 A勤務作成のシートにVBAのボタン(図形にて)を押すと上記のカレンダーの シートは下記のイメージの様に勤務作成のシートから抽出され反映する様に したいと思います。 ※VBAのマクロを実行後のイメージ シート名:カレンダー A B C D E F G 1 10月 2 日 月 火 水 木 金 土 3 1 4 あ 5 6 7 2 3 4 5 6 7 8 8 う あ い あ い 9 え お う え 10 お 11 12 9 10 11 12 13 14 15 13 14 15 16 16 17 18 19 20 21 22 17 18 19 20 23 24 25 26 27 28 29 21 22 23 24 30 31 25 26 27 ※どうしたら勤務作成のシート上にある職員一人一人に入力した数字の1が あるかを判断(if文)してカレンダーのシートの日付け下に転記出来る様に するVBAの関数が必要なのかご教授いただきたいと思います。 宜しくお願い致します。 |
[195339] Re[1]: 勤務表をカレンダーへ転記するには?- ■記事引用/メール受信=OFF■ □投稿者/ パンダ -(2022/10/25(15:46)) □U R L/ すみませんです。上手く勤務作成の表示が出来ていなかったので改めて書き込みしました。 シート名:勤務作成 A B C D E F G H … AF 1 10月 1 2 3 4 5 6 7 … 31 2 曜日 土 日 月 火 水 木 金 … 月 3 名前 4 あ 1 1 1 5 い 1 1 6 う 1 1 7 え 1 1 8 お 1 1 |
[195340] Re[2]: 勤務表をカレンダーへ転記するには?- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/10/25(16:58)) □U R L/ 何故、2日〜8日の週だけ4人分の行があるのですか?(他は3行) カレンダーのレイアウトが、実際は確定してないのですか? |
[195341] Re[3]: 勤務表をカレンダーへ転記するには?- ■記事引用/メール受信=OFF■ □投稿者/ パンダ -(2022/10/25(17:13)) □U R L/ こんにちは!半平太さんからのご質問ですが、カレンダーのレイアウトは日付下に4人分転記出来る様にしたいと思っていましたが、すみませんです表記ミスをしてしまいました。 |
[195342] Re[4]: 勤務表をカレンダーへ転記するには?- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/10/25(20:13)) □U R L/ Sub Sample() Dim wsShift As Worksheet Dim cellToCheck As Range Dim lastRow As Long, i As Long, k As Long Dim RR As Long, Cnt As Long, DyCol As Long Set wsShift = Worksheets("勤務作成") lastRow = wsShift.Cells(Rows.Count, "A").End(xlUp).Row Set cellToCheck = Worksheets("カレンダー").Range("A3:G32") DyCol = 1 '初期値をセット For i = 1 To 30 Step 5 cellToCheck(i + 1, 1).Resize(4, 7) = Empty '前回処理の残データをクリア For k = 1 To 7 If IsNumeric(CStr(cellToCheck(i, k))) Then '日付相当セルなら DyCol = DyCol + 1 '日付列順を求める Cnt = 0 For RR = 4 To lastRow '全員をチェック If wsShift.Cells(RR, DyCol) = 1 Then Cnt = Cnt + 1 '名前を直下セルに転記 cellToCheck(i + Cnt, k) = wsShift.Cells(RR, "A") End If Next RR End If Next k Next i End Sub |
[195344] Re[5]: 勤務表をカレンダーへ転記するには?- ■ / 記事引用/メール受信=OFF■ □投稿者/ パンダ -(2022/10/26(08:48)) □U R L/ おはようございます! 半平太さんご教授いただきましてありがとうございます。 半平太さんのSampleにて解決出来ました。 Sampleを見て改めて大変な処理をVBAにしようと思っていたんだなと実感しました。 一つ一つの処理を私がちゃんと理解していきます。 半平太さんありがとうございました。 |
このトピックに書きこむ |
---|