- ベストアンサー
ExcelでWindowsのイベントログを取得したい
最近システム管理関係の業務を行うことになりまずは手始めにイベントログのエラー監視をすることになりました。 そこでExcel2003でWindowsのイベントログの内容を取得するマクロを用意したいのですが、どこかに良いサンプルはありませんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Dim W, C, T, P, N, V, I, X Set W = GetObject("winmgmts:\\.\root\cimv2") Set C = W.ExecQuery("SELECT * FROM Win32_NTLogEvent" _ & " WHERE Type='エラー'") 'エラーのみ収集 For Each T In C For Each P In T.properties_ N = P.Name V = P.Value X = -1 If P.IsArray Then On Error Resume Next X = UBound(P.Value) On Error GoTo 0 End If If X < 0 Then Debug.Print N; ": "; V Else For I = 0 To X Debug.Print N; "("; CStr(I); "): "; V(I) Next End If Next Next プロパティ名と内容がイミディエイトウィンドウに出力されます。 TimeGenerated、TimeWritten は日付なので、次の方法で変換します。 Dim S Set S = CreateObject("WbemScripting.SWbemDateTime") S.Value = T.TimeGenerated その後、Sの各プロパティを参照します。(下記参照) Year,Month,Day,Hours,Minutes,Seconds,Microseconds 実行するユーザはイベントログを扱う権限が必要です。
その他の回答 (1)
- うぃず(@Wizard_Zero)
- ベストアンサー率69% (344/495)
このあたりでいかがでしょうか? http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb10.mspx
お礼
WMIの便利さがわかりました。 ありがとうございました。
お礼
お返事が遅くなりました。ありがとうございました。 サンプルを頂いたあといろいろ調べてみたらWMI Fun (http://www.wmifun.net/)というサイトを見つけてこちらもみながら勉強しています。