Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items

我已经使用了上面的代码访问主要的Outlook收件箱,但是如何在收件箱中访问文件夹以及使用VBA的邮件!

有帮助吗?

解决方案

那很近:)

要在收件箱下的文件夹中获取所有邮件项目,请尝试此尝试

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem

Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("Temp")

For Each msg In olFolder.Items
    Debug.Print msg.Subject
Next

其他提示

我发现我的收件箱中有一些项目不是邮寄物品,导致脚本停止。如果找到会议邀请函,则可以使脚本保持运行:

Sub getmail()

Dim olApp As Outlook.Application
Dim objNS As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder

'Dim msg As Outlook.MailItem
Dim InboxItem As Object

Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("temp")

For Each InboxItem In olFolder.Items
    Debug.Print InboxItem.Subject
    Debug.Print InboxItem.EntryID
Next

End Sub

感谢您的回答!帮助我很多!

(我的歉意 - 想发表评论,但没有足够的代表..)

为了进一步钻探,请继续添加设定的橄榄石线:

Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("temp")
Set olFolder = olFolder.Folders("temp2")
Set olFolder = olFolder.Folders("temp3")

让您进入 inbox temp temp2 temp3

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top