[[20151125154624]] 『エクセルVBAによる勤務表作成について、ご質問がax(io) ページの最後に飛ぶ

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

 

『エクセルVBAによる勤務表作成について、ご質問があります。』(io)

現在、某警備会社に勤務しており、勤務表作成を担当するようになりました。
時間数の集計などは、関数により自動で反映させるようにしてあるのですが、
その他の、勤務指定などについては、すべて手入力で行っております。

この作業を、VBAにて簡素化できないだろうかと思い、ご質問させていただきます。

1班〜4班あり、各班の人員は4名です。

勤務サイクルは、「2,2,1,1、明、0,0、休」という1サイクルを3回繰り返したあと、「日、日、日、日、日、日」の日勤サイクルを1サイクル指定するという勤務内容です。

年間勤務表を作成するのに、このサイクルを1月〜12月の各表に自動で挿入させることは可能なのでしょうか?

4月を入力後、5月の1日の勤務は、4月の月末の勤務内容を参照して入力するようにさせなければならないのですが、それも可能なのでしょうか??

< 使用 Excel:Excel2010、使用 OS:Windows7 >


こんにちは

「2,2,1,1、明、0,0、休」の「2」「1」「0」とかってどういう意味でしょうか?

新規シートを開いておいて実行してみて下さい。

Sub test()

    Dim i As Long
    Dim d As Date
    For i = 0 To 60
        d = DateAdd("d", i, DateValue("2015/4/1"))
        Cells(i + 1, 1) = d
        Cells(i + 1, 2) = 勤務(DateValue("2015/4/1"), d)
    Next
End Sub
Function 勤務(start As Date, t As Date) As Variant
    Dim i As Long
    Dim a As Variant
    a = Array("2", "2", "1", "1", "明", "0", "0", "休", _
                "2", "2", "1", "1", "明", "0", "0", "休", _
                "2", "2", "1", "1", "明", "0", "0", "休", _
                "日", "日", "日", "日", "日", "日")
    i = DateDiff("d", start, t) Mod 30
    勤務 = a(i)
End Function

2015/4/1から勤務パターンがスタートする場合にしてあります。

(ウッシ) 2015/11/25(水) 16:28


ウッシ様

返事が遅くなり申し訳ございません。

「2」は、朝8:00〜21:00  「1」は、夜21:00〜朝8:00  「0」は休日という意味みなります。

ウッシ様がご教授してくださいましたコードを実行させてみましたところ、自分のしたいことにだいぶ近づけました!ありがとうございます。

現状縦に配列されますが、横に配列させるにはどのように書き換えればよろしいのでしょうか?
また、毎月の勤務表は、1か月単位で表が分かれておりますので、1か月以上続けて入力させるのではなく、
1か月単位で、指定した表に入力させることは可能でしょうか??

質問ばかりで申し訳ございません。

(io) 2015/12/10(木) 09:41


コメント返信:

[ 一覧(最新更新順) ]


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