2011-11-30 3 views
4
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를 사용하여 메일에 액세스하는 방법을 사용했습니다.Visual Basic을 사용하여 Inbox의 하위 폴더에 액세스 하시겠습니까?

답변

15

그게 매우 가까운 :)

내가했다 내받은 편지함에서 일부 항목이 사실을 발견이

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 
+4

+1 내 개인 취향은 두 번째 문장으로 덮어 쓰지 않고 하나의 문장에'olFolder'를 할당하고 있습니다 :'Set olFolder = objNS.GetDefaultFolder (olFolderInbox) .Folders ("Temp")' –

+0

thx Jean-Francois. 그것은 좋은 지적입니다, 오늘 내 VBA 코딩의 버크입니다. 비록 VBA와 VBScript에서 다르게 코드를 지정합니다. – brettdj

+2

+1 기본이 아닌 폴더에 액세스 할 때는 계층 구조를 걸어야합니다. 계단식 객체 참조를 설정하여 점의 수를 제한하는 것이 가장 좋지만, 서둘러 @ Jean-FrançoisCorbett처럼 모든 것을 한 줄로 채울 것입니다. – JimmyPena

3

을 시도받은 편지함에서 "임시"라는 폴더에있는 모든 메일 항목을 얻으려면 스크립트를 중단시키는 메일 항목이 아닙니다. 이 작은 변화는 회의 같은 것을이 발견 초대 경우 계속 실행되도록 스크립트를 허용 : 당신의 대답에 대한

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

을 그리고, 아래로 더 드릴 세트 olFolder 라인을 계속 추가 할 :

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

받은 편지함을 \ 수를 가져옵니다을 \ temp \ temp2 \ temp3 \