outlook“要做”项目使用VBA的Excel

首先,我是VBA的新手,大约有20个小时的训练。

我试图将项目从Outlook 2010导出到Excel 2010.我想从Outlook中抓取所有未完成的“待办事宜”项目,并将它们放入Excel,每行一个项目,以及项目参数的列(如Subject,Due Date ,附件等)。

这是第一遍实际上是我所解释的,只input任务(任务是所有项目的一个子集,据我所知)和他们的主题/到期date:

Function GetOutlookApp() As Object On Error Resume Next Set GetOutlookApp = GetObject(, "Outlook.Application") If Err.Number <> 0 Then Set GetOutlookApp = CreateObject("Outlook.Application") End If On Error GoTo 0 End Function Sub getOlTasks() Dim olApp As Object ' Outlook.Application Dim olnameSpace As Object ' Outlook.Namespace Dim taskFolder As Object ' Outlook.MAPIFolder Dim tasks As Object ' Outlook.Items Dim tsk As Object Set olApp = GetOutlookApp Set olnameSpace = olApp.GetNamespace("MAPI") Set taskFolder = olnameSpace.GetDefaultFolder(13) 'olFolderTasks is folder# 13, apparently Set tasks = taskFolder.Items For x = 1 To tasks.Count Set tsk = tasks.Item(x) Sheet1.Cells(1, 1).Activate Do While IsEmpty(ActiveCell) = False Selection.Offset(1, 0).Activate Loop 'Fill in Data If Not tsk.Complete Then ActiveCell.Value = tsk.Subject Selection.Offset(0, 1).Activate ActiveCell.Value = tsk.DueDate Selection.Offset(1, -1).Activate End If Next x End Sub 

我试图只用“任务”项目来做到这一点,一切都进展顺利,直到我意识到任务不能有附件。 当我有一个电子邮件瓦特/附件,我变成一项任务,我失去了依恋。 显然我需要做的是导入所有“待办事项”,而不仅仅是任务。

所以我的问题是:

1)什么文件夹号是olFolderToDo? 我看到人们运行代码如:

 Set taskFolder = olnameSpace.GetDefaultFolder(olFolderTasks) 'rather than GetDefaultFolder(13) 

这将导致我相信我应该能够使用olFolderToDo,但是当我尝试在第一个示例中使用文件夹的名称而不是数字时 ,我得到一个无效的参数运行时错误。 如果有人知道为什么,我有兴趣知道。

2)我怎样才能将附件从电子邮件导入到Excel中的特定单元格?

请参阅OlDefaultFolders枚举(Outlook)

 Name Value Description olFolderToDo 28 The To Do folder.