• ベストアンサー

毎日のshutdown時間をExcelに記録する方法

こんにちは。よろしくお願いします。 毎日、最後にパソコンをshutdownして退社するので、その時間を使って毎月の退社時間の報告書を簡単に作成できないかと考えています。 起動や停止の時間などを取ってくれるフリーソフトもありますが、 もっとシンプルにshutdownの時間だけを貰って来て、Excelに記録していくというバッチなんかが出来ないかと考えています。 パソコンはWindowsXPです。shutdownの時間を貰えるコマンドを探してみましたが見つけられませんでした。 他の方法のアドバイスなどもありましたら、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1416)
回答No.1

以下のVBSを作り、コマンドラインから実行してください。 If WScript.Arguments.Count <> 1 Then   WScript.Echo "使用方法:" & vbNewLine & _   "Excelのパス名を1個だけコマンドラインで指定します" Else   Dim APL, NUM, MSG   Set APL = CreateObject("Excel.Application")   On Error Resume Next   LogWrt WScript.Arguments(0)   NUM = Err.Number   MSG = Err.Description   On Error GoTo 0   APL.DisplayAlerts = False   APL.Quit   Set APL = Nothing   If NUM <> 0 Then Err.Raise NUM, , MSG End If Sub LogWrt(ByVal PTH) Dim WKB, WKS Dim I, J, DMX Dim QRY, REC, TMP On Error Resume Next Set WKB = APL.Workbooks.Open(PTH) If Err.Number <> 0 Then   Err.Clear   Set WKB = APL.Workbooks.Add   WKB.SaveAs PTH End If I = Err.Number J = Err.Description On Error GoTo 0 If I <> 0 Then   Err.Raise I, , J   Exit Sub End If If WKB.Worksheets.Count = 0 Then WKB.Worksheets.Add Set WKS = WKB.Worksheets(1) I = 1 Set QRY = CreateObject("WBemScripting.SWBemLocator"). _      ConnectServer(".").ExecQuery("SELECT TimeWritten " _      & "FROM Win32_NTLogEvent WHERE " _      & "EventCode=6006 And LogFile='System'") DMX = -1 ReDim DWN(0) For Each REC In QRY   DMX = DMX + 1   ReDim Preserve DWN(DMX)   TMP = REC.TimeWritten   DWN(DMX) = CDate(Left(TMP, 4) & "/" & Mid(TMP, 5, 2) & "/" & Mid(TMP, 7, 2) _        & " " & Mid(TMP, 9, 2) & ":" & Mid(TMP, 11, 2) & ":" & Mid(TMP, 13, 2)) Next For J = 0 To DMX   Do     TMP = WKS.Cells(I, 1).Value     If VarType(TMP) <> vbDate Then Exit Do     If TMP > DWN(J) Then       I = I + 1     Else       If TMP < DWN(J) Then WKS.Cells(I, 1).EntireRow.Insert       Exit Do     End If   Loop   WKS.Cells(I, 1).Value = DWN(J)   I = I + 1 Next WKB.Save WKB.Close End Sub

noname#106387
質問者

お礼

VBSの知識がゼロでしたので、私には難しすぎましたが、 力作をありがとうございました!!!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.2

真面目にやると#1さんの書いたようなやり方でイベントログからシャットダウン時間を取ってくることになりますが、簡単にやるには、バッチファイルで、 echo %DATE%,%TIME:~0,8% >> shutdowntime.csv shutdown -s -t 0 というのを作り、スタートメニューからシャットダウンせずに、このバッチファイルを起動することでシャットダウンすればいいです。

noname#106387
質問者

お礼

わかりやすい回答をありがとうございました!!! この方法に、少し手を加えて実現することにしました。

すると、全ての回答が全文表示されます。

関連するQ&A