2017-06-27 12 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

私はキャッシュされていないキャッシュ(OST)のExchangeプロファイルのように "オンライン"を意味していました。 –

+0

それはオンラインメールサービス(IMAP)ですが、私はテーブルオブジェクトを試しましたが、テーブルオブジェクトは400個の限られたカウントにしかアクセスできません。ありがとうございました。限定数400以上の次のメールにはどうすればアクセスできますか? –

関連する問題