Microsoft のWEBサイトに載っている集計サンプルは非常に複雑でしたのでソースコードをすっきりさせました
指定された分類での累積時間を計算します。Me.ComboBox1.Text には 年/月 を選択させています。
ソース
Dim SumTime As Long '集計時間(分) '範囲を考える Dim STDATE As Date Dim ENDATE As Date STDATE = Me.ComboBox1.Text & "/01" ENDATE = DateAdd("m", 1, STDATE) & " 00:00" Dim colAppts As Items Set colAppts = Session.GetDefaultFolder(olFolderCalendar).Items colAppts.Sort "[Start]" colAppts.IncludeRecurrences = True '定期的な予定があってもこの行で取得可能! Dim colApptsFind As AppointmentItem Set colApptsFind = colAppts.Find("[Start] >= '" & STDATE & "' AND [END] < '" & ENDATE & "'") While Not colApptsFind Is Nothing If InStr(1, colApptsFind.Categories, "ここに分類名を入れます") > 0 Then SumTime = SumTime + colApptsFind.Duration End If Set colApptsFind = colAppts.FindNext Wend MsgBox Int(SumTime / 60) & " 時間 " & SumTime Mod 60 & " 分", vbInformation
コメント