エクセルツールを利用して製品のロケーション管理をする応用例のご紹介です。
マイクロソフトビジオを利用したフロアマップ画像の作成方法から、リストから製品を選んでフロアマップ上に製品位置を表示するVBA関数などを紹介します。
カテゴリー別アーカイブ: 応用編
勤怠管理をする
エクセルツールを利用すれば勤怠管理も簡単に実現できます。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回読ませると...
今度は退社時刻のところに時刻が入力されました。
これで出社時にピッ、退社時にピッで勤怠表の完成です。
出席管理や棚卸をする
エクセルツールの利用シーンで多いのが出席の管理ではないでしょうか。出席者の持っているICカードをピッピッとやってもらえば完了!というわけです。一番簡単な出席管理マクロを紹介します。ハンディリーダを使えば、棚卸にも応用できます。
まずはあらかじめ「セルへ入力する」の機能を使って、出席者のIDを取得して名簿を作成しておきます。右側に日付と、出席したら○を付ける欄を用意します。
マクロを書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
' 日付の行番号 Public Const ROW_NUMBER_DATE = 2 ' 日付の開始列番号 Public Const COLUMN_NUMBER_DATE_START = 3 Sub Attend(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 + 1 Wend Cells(ROW_NUMBER_DATE, column).Value = Date Cells(ActiveCell.Row, column).Value = "○" End Sub |
日付の行番号は、2行目に日付の行があるよ という意味です。
日付の開始列番号は、3列目(C列)からが日付の列だよ という意味です。
で、設定画面でマクロを設定します。「右側に読取時刻を入力する」のチェックを外しておいて、「セル発見時にマクロを実行する」に先ほど作成したマクロを指定します。
で、B太郎のタグを読ませてみると...
読みとった日の日付の列が新しく追加され、B太郎のところに○が付きました!
これで何も考えずに起動してタグを読ませるだけで出席管理表が自動作成されていきます。便利ですね。ハンディを使えば、棚卸チェック表としても利用できますよ。