Excellマクロで出勤記録を作ろうと思います.
A列に職員番号を入力したら,B列に日,C列に時を出力するマクロが書きたいです.
保存するためのファイル名は,時間を秒単位でつければ,上書き保存エラーがでないと考えたつもりで,次のようなマクロを作りました.
★困りごと
1 このワークシートを初めて開いたときは動くのですが,2回目に開くとマクロが動きません.
2 使う度にワークシートの名前が変わってしまうので困る
気付いたことは
・プロジェクトエクスプローラーに,VBAproject が残ってしまう.
・残ってしまうVBAprojectという意味は,そのワークシートを閉じて開いてるワークシートが1つもなくても,プロジェクトエクスプローラーに表示されたままになってるという意味です.objectプロパティーを調べるもオカシイ状況です.
★直したいこと
いつも,「Higenky.xlsm」というファイル名で,csvを出力するマクロに作り替えたいです.
ActiveWorkbook.SaveAs を書く位置が良くないでしょうか.
なにか工夫を教えていただけると有り難いです.よろしくお願いします.
Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("A3:A5000"))
If Target Is Nothing Then End
Application.EnableEvents = False
For Each r In Target
If r <> "" Then
r.Offset(, 1) = Date
r.Offset(, 2) = Time
Else
r.Offset(, 1).ClearContents
r.Offset(, 2).ClearContents
End If
tt = Format(Date, "yyyymmdd")
ss = Format(Time, "hhnnss")
ActiveWorkbook.SaveAs Filename:="c:\hogehoge\HiGenky_" & tt & ss & ".xlsm"
Next
Application.EnableEvents = True
End Sub
回答2件
あなたの回答
tips
プレビュー