• ベストアンサー

ExcelでWindowsのイベントログを取得したい

最近システム管理関係の業務を行うことになりまずは手始めにイベントログのエラー監視をすることになりました。 そこでExcel2003でWindowsのイベントログの内容を取得するマクロを用意したいのですが、どこかに良いサンプルはありませんでしょうか?

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.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 実行するユーザはイベントログを扱う権限が必要です。

mi1010
質問者

お礼

お返事が遅くなりました。ありがとうございました。 サンプルを頂いたあといろいろ調べてみたらWMI Fun (http://www.wmifun.net/)というサイトを見つけてこちらもみながら勉強しています。

その他の回答 (1)

回答No.1
参考URL:
http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb10.mspx
mi1010
質問者

お礼

WMIの便利さがわかりました。 ありがとうございました。