エクセルでタイムレコーダーを作る方法

January 25 [Tue], 2011, 14:20
教えてください。

現在業務管理のためエクセルを使用しています。
タイムレコーダ(打刻ボタン・・・出社/退社)も同シートにはめ込みたいのですが
プログラムを作成するしか方法はないでしょうか?

希望は、「出社」「退社」の打刻ボタンがあり
ボタンを押すと、その日の出社/退社欄に時刻が入力されるような感じです。

よろしくお願いいたします。






------------------










> また、一度押したら確定(押し直しができない)とすることはできますでしょうか?

はできるのですが、どこまで徹底的にやるかでやり方は変わってきます。

(1)ボタンを押したらそのボタンは押せなくなり、一度ブックを閉じて再度開いても、その日の日付が入力されていたら、該当するボタンを押せないように設定する。

とするのは簡単です。しかし、これには抜け道があり、いったん入力した時刻を手動で削除し、ブックを開き直すと、またボタンが押せるようになってしまいます。

そこで、
(2)シート保護をかけて、ユーザは直接管理表のセルに入力したり削除したりできなくする。(ユーザが入力するセルだけは、セルの書式設定の「保護」からロックを解除する)
シート保護にはパスワードを設定し、ユーザが保護を解除できないようにする。

という手が考えられます。しかし、画面からシート保護をかけると、マクロの中でもセルに時刻を入力することができなくなるのです。したがって、

(3)マクロの中でパスワードでいったんシート保護を解除し、時刻を表示したら再びパスワードをつけてシート保護をかける。

という手があります。あるいは、画面からはセルの変更はできないが、マクロの中からはできる、というモードにマクロで設定することもできますが、どちらにしろマクロの中にパスワードを埋め込む必要があります。

これも、ちょっと詳しいユーザがいてVBAの画面を開いてマクロの中を覗いてしまうと、パスワードが丸見えになり、結局保護は破られます。

それで、最終手段として、

(4)マクロにパスワードをかける
ということができます。この設定をすると、マクロの中身を見ようと思っても、パスワードがないと見られなくなるので、さすがにユーザは変更できなくなると思います。

それで、どこまで徹底してやるか、というのが問題です。とりあえず(1)の段階までだけやる方法をご紹介します。

縦横が逆だったということなので、今度はA列がタイトル行で、1行目のB列より右に日付が入っており、出社時刻が2行目、退社時刻が3行目に入るものとします。

マクロをそれぞれ以下のように変更してください。

Private Sub CommandButton1_Click()
 Cells(2, Day(Date) + 1).Value = Time
 CommandButton1.Enabled = False
End Sub

Private Sub CommandButton2_Click()
 Cells(3, Day(Date) + 1).Value = Time
 CommandButton2.Enabled = False
End Sub

それから、左側のThisWorkbookという文字をダブルクリックしてください。新たに白いシートが右に出ます。
そこに、以下のマクロをコピーして貼り付けてください。

Private Sub Workbook_Open()
 With Worksheets("Sheet1")
  If .Cells(2, Day(Date) + 1).Value = "" Then
   .CommandButton1.Enabled = True
  Else
   .CommandButton1.Enabled = False
  End If
  If .Cells(3, Day(Date) + 1).Value = "" Then
   .CommandButton2.Enabled = True
  Else
   .CommandButton2.Enabled = False
  End If
 End With
End Sub

これは、ブックが開かれたときにボタンの押せる/押せないを設定するマクロです。

上に書いた(2)〜(4)のうち、ここまでやりたい、というご希望があればアドバイスをしますので、補足をお願いします。
プロフィール
  • プロフィール画像
  • アイコン画像 ニックネーム:タイムレコーダー
読者になる
2011年01月
« 前の月  |  次の月 »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
最新コメント
Yapme!一覧
読者になる
P R
カテゴリアーカイブ
月別アーカイブ
https://yaplog.jp/timerecoder/index1_0.rdf