2017-06-27 83 views
1

我想使用Outlook MAPI將所有電子郵件列在特定文件夾中。我試過以下代碼,使用Outlook MAPI列出所有電子郵件文件夾

但它只顯示文件夾中20,000個電子郵件中的400個。如果有人能告訴我如何列出全部的電子郵件,我將不勝感激。

Sub EmailListinFolder() 

Dim mn As Long 
Dim Message As String 
Dim item As Object 
Dim NS As Object 
Dim Folder As Object 

'Get the MAPI Name Space 
Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI") 

'Allow the user to select a folder in Outlook 
Set Folder = NS.PickFolder 
For Each item In Folder.Items 
    If item.Class = olMail Then 

     Message = item.Subject & "|" & item.CreationTime 
     If Len(Message) Then 
     mn = mn + 1 
     End If 
    End If 
Next item 

MsgBox (mn) 
End Sub 

回答

0

是一個在線的個人資料?很可能你最終會打開太多的項目(對於每個循環保持所有項目被引用,直到循環退出)。改爲使用Table對象 - 請參閱https://msdn.microsoft.com/VBA/Outlook-VBA/articles/folder-gettable-method-outlook上的示例。

+0

是的,它是在線電子郵件服務。 –

+0

我的意思是「在線」,如在非緩存vs緩存(OST)Exchange配置文件中。 –

+0

它是在線電子郵件服務(IMAP),我嘗試了Table對象,但Table對象也只能訪問400個有限的計數。感謝您的幫助。我怎樣才能訪問下一封電子郵件超過限數400? –

相關問題