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を使用したメールです。
とても近い :)
受信トレイの下の「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
受信トレイにメールアイテムではないアイテムがいくつかあり、スクリプトが停止していることがわかりました。この小さな変更により、会議の招待状のようなものが見つかった場合でも、スクリプトを実行し続けることができました。
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
ご回答有難うございます!とても助かりました!
(お詫びします-コメントしたかったのですが、十分な担当者がいません。)
さらにドリルダウンするには、SetolFolder行を追加し続けます。
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("temp")
Set olFolder = olFolder.Folders("temp2")
Set olFolder = olFolder.Folders("temp3")
\ Inbox\temp\temp2\temp3 \に移動します