エクセルツールを利用すれば勤怠管理も簡単に実現できます。ICカードを使ったタイムカードシステムです。出社時にピッ、退社時にピッっとやって勤怠表が自動作成されるようにしてみましょう。
まずはあらかじめ「セルへ入力する」の機能を使って、社員のカードIDを取得して名簿を作成しておきます。右側に日付と、出社時と退社時の時刻が入力できる欄を用意しておきます。
マクロを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
' 日付の行番号 Public Const ROW_NUMBER_DATE = 2 ' 日付の開始列番号 Public Const COLUMN_NUMBER_DATE_START = 3 Sub TimeCard(TagID As String, TimeStamp As String) Dim column As Integer column = COLUMN_NUMBER_DATE_START While (Cells(ROW_NUMBER_DATE, column).Value <> "") And (Cells(ROW_NUMBER_DATE, column).Value <> Date) column = column + 2 Wend Cells(ROW_NUMBER_DATE, column).Value = Date Cells(ROW_NUMBER_DATE + 1, column).Value = "出社時刻" Cells(ROW_NUMBER_DATE + 1, column + 1).Value = "退社時刻" If Cells(ActiveCell.Row, column).Value <> "" Then Cells(ActiveCell.Row, column + 1).Value = Time Else Cells(ActiveCell.Row, column).Value = Time End If End Sub |
日付の行番号は、2行目に日付の行があるよ という意味です。
日付の開始列番号は、3列目(C列)からが日付の列だよ という意味です。
プログラムの動きとしては、まずタッチされた日の列があるか探します。
無かったら、日付の列を作成して、その下に「出社時刻」と「退社時刻」というタイトルを作成します。
そして該当する社員の出社時刻をみて、空だったら出社ということで時刻を入力し、値が入っていたら2回目以降のタッチということになるので、退社の方に時刻を入力します。
では、設定画面でマクロを設定します。「右側に読取時刻を入力する」のチェックを外しておいて、「セル発見時にマクロを実行する」に先ほど作成したマクロを指定します。
B太郎のタグを読ませると...
読みとった日の日付の列が新しく追加され、B太郎の出社時刻のところに時刻が入力されました。
さらにもう1回読ませると...
今度は退社時刻のところに時刻が入力されました。
これで出社時にピッ、退社時にピッで勤怠表の完成です。