Использование Visual Basic для доступа к подпапке в папке «Входящие»? - PullRequest
7 голосов
/ 30 ноября 2011
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!

Ответы [ 3 ]

18 голосов
/ 30 ноября 2011

Это очень близко:)

Чтобы получить все почтовые элементы в папке с именем "temp" в папке "Входящие", попробуйте это

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
3 голосов
/ 28 ноября 2014

Я обнаружил, что в моем почтовом ящике были некоторые элементы, которые не были почтовыми, что приводило к остановке сценария. Это небольшое изменение позволило сценарию продолжить работу, если было найдено что-то вроде приглашения на встречу:

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

Спасибо за ваш ответ! мне очень помогло!

(Мои извинения - хотел прокомментировать, но мне не хватает репутации ..)

0 голосов
/ 22 февраля 2018

А для дальнейшего углубления добавьте строки Set olFolder:

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

Получает вас в \ Inbox \ temp \ temp2 \ temp3 \

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...