[[20120622154538]] 『タイムカードマクロの改変版について』(真似っこ) ページの最後に飛ぶ

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

 

『タイムカードマクロの改変版について』(真似っこ)

 過去ログの中で(川野鮎太郎)さんが教えてくれた下記のマクロを見つけたのですが、
 こちらを是非活用したいのですが、私の場合、Cの出勤が必要ありません。
 何度か試してみたんですが、どこをどう削除して改変すれば良いのでしょうか?
 すいませんが教えて下さい。よろしくお願いします。
 (因みに適当なボタンを作って、それをクリックすれば現在の時刻が反映するマクロです)

 ********************************

 以下のような表があるとして、マクロでならこんな感じでどうでしょうか。

	 A	 B	 C	 D	 E
  1	日付	曜日	出勤	退勤	勤務時間
  2	11/14	日			
  3	11/15	月			
  4	11/16	火			
  5	11/17	水			
  6	11/18	木			
  7	11/19	金			
  8	11/20	土			
  9	11/21	日			
 10	11/22	月			
 11	11/23	火			
 12	11/24	水			
 13	11/25	木			
 14	11/26	金			
 15	11/27	土			
 16	11/28	日			
 17	11/29	月			
 18	11/30	火			

 Option Explicit
Sub 打刻()
Dim SDate As Variant, EDate As Variant
Dim MyDate As Date
Dim MyRow As Long
Dim c As Range
Dim FindAddress As String
MyDate = Date
MyRow = Range("A65536").End(xlUp).Row
With Worksheets("Sheet1").Range("A2:A" & MyRow)
    Set c = .Find(MyDate, LookIn:=xlFormulas)
    If Not c Is Nothing Then
        FindAddress = c.Address
        SDate = Range(FindAddress).Offset(, 2).Value
        EDate = Range(FindAddress).Offset(, 3).Value
    Else
        MsgBox ("該当する日がありません")
        Exit Sub
    End If
End With
    If IsEmpty(SDate) = False And _
        IsEmpty(EDate) = False Then Exit Sub
        ActiveSheet.Unprotect
    If Range(FindAddress).Offset(, 2).Value = "" Then
        Range(FindAddress).Offset(, 2).Value = Format(Now, "hh:mm")
    Else
        Range(FindAddress).Offset(, 3).Value = Format(Now, "hh:mm")
  End If
ActiveSheet.Protect
End Sub

 ***************************

一番簡単なのは、C列に適当なデータを入力しておいて、C列を非表示にしておくこと。
If Range(FindAddress).Offset(, 2).Value = "" Then で、C列空白かどうかだけ
チェックしていますから。
マクロは改変の必要はありません。

(みやほりん)


 なるほど!! ありがとうございました!!
 (真似っこ)

コメント返信:

[ 一覧(最新更新順) ]


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