• ベストアンサー
  • 困ってます

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

  • 質問No.5375493
  • 閲覧数5234
  • ありがとう数2
  • 回答数2

お礼率 100% (2/2)

最近システム管理関係の業務を行うことになりまずは手始めにイベントログのエラー監視をすることになりました。

そこでExcel2003でWindowsのイベントログの内容を取得するマクロを用意したいのですが、どこかに良いサンプルはありませんでしょうか?

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 55% (773/1384)

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

お礼率 100% (2/2)

お返事が遅くなりました。ありがとうございました。

サンプルを頂いたあといろいろ調べてみたらWMI Fun (http://www.wmifun.net/)というサイトを見つけてこちらもみながら勉強しています。
投稿日時:2009/10/28 22:05

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 69% (344/495)

お礼コメント
mi1010

お礼率 100% (2/2)

WMIの便利さがわかりました。

ありがとうございました。
投稿日時:2009/10/28 22:06
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ページ先頭へ