在Outlook 2010中的「任務列表」中包含的所有任務項目,以及已標記的所有郵件。爲了規劃每個待辦事項需要多長時間,我已將內置的Outlook字段「Total Work」添加到此視圖(使用字段選擇器)。從Outlook VBA,我怎麼能訪問olTodo.TotalWork當olTodo.Class = olMail
我手動與多久,我想每一個待辦事項將採取「待辦事項清單」視圖更新「總工時」字段。
我想總量可達多少分鐘我所有的任務都需要。我試圖在VBA中做到這一點。我可以從oltodo.Class = olTask獲得olTodo.TotalWork,而不是olTodo.Class = olMail。
該錯誤消息我得到的是:運行時錯誤「438」:對象不支持此屬性或方法
據我所知,這個消息告訴我,olTodo不支持TOTALWORK屬性時oltodo.Class = olMail,但是,我知道Outlook有TotalWork數據,因爲我可以在Outlook的「待辦事項列表」視圖中查看和更新所有項目(包括olMail項目)的TotalWork。
所以,我的問題:我如何編程方式從VBA訪問這些數據?
這裏是我的代碼:
Sub CountMinutesNeeded()
Dim olApp As Outlook.Application
Dim olNs As NameSpace
Dim Fldr As MAPIFolder
Dim olTodo As Object
Dim iMinuteCount As Long ' Minutes needed to complete to-do's
Dim olItms As Outlook.Items
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set Fldr = olNs.GetDefaultFolder(olFolderToDo)
Set olItms = Fldr.Items
For Each olTodo In olItms
If olTodo.Class = olTask Then
' Only look at uncompleted tasks with a due date <= today OR Null
If (olTodo.DueDate <= Date Or olTodo.DueDate = #1/1/4501#) And olTodo.Complete = False Then
iMinuteCount = iMinuteCount + olTodo.TotalWork
End If
Else
If olTodo.Class = olMail Then
' Only interested in uncompleted items due today or earlier, or without due date
If (olTodo.TaskDueDate <= Date Or olTodo.TaskDueDate = #1/1/4501#) And olTodo.TaskCompletedDate = "1/1/4501" Then
' !!! This code does not work. I am unable to access olTodo.TotalWork when olTodo.class = olMail,
' Run-time error '438': Object doesn't support this property or method
'iMinuteCount = iMinuteCount + olTodo.TotalWork
' Instead, we'll assume 15 minutes
iMinuteCount = iMinuteCount + 15
End If
End If
End If
Next olTodo
MsgBox "Total Minutes Needed = " & iMinuteCount
End Sub
沒錯,就是工作。 Set oPA = olTodo.PropertyAccessor dur = oPA.GetProperty(「http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81110003」) iMinuteCount = iMinuteCount + dur –
Outlookspy是一個30天試用期的付費應用程序。這裏是展示另一種方式從Outlook中獲得DASL屬性名稱的鏈接:http://blogs.msdn.com/b/philliphoff/archive/2008/12/19/finding-dasl-property-names.aspx?重定向=真 –