2016-12-01 23 views
0

以下のコードを使用して、Outlook受信トレイからデータを取得し、Excelで同じデータを更新することができます。 問題は、最初に更新されるマクロを先読みして最新の応答を更新できないことです。私が昨日のabcからの応答を得て、今日abcからの応答を更新した場合、マクロは昨日の応答を更新しています。マクロがフォルダの一番下から電子メールを読み、引っ張られるデータが更新されるように、コードをどのように変更することができますか?Excel VBAコードを受信トレイから受信トレイから読み取る

要するに、私の記録の最新の回答を更新したいと思います。後方

Dim outlookApp As Outlook.Application, oOutlook As Object 
Dim oInbox As Outlook.Folder, oMail As Outlook.MailItem 
Dim strAddress As String, strEntryId As String, getSmtpMailAddress As String 
Dim objAddressentry As Outlook.AddressEntry, objExchangeUser As Outlook.ExchangeUser 
Dim objReply As Outlook.MailItem, objRecipient As Outlook.Recipient 
Set outlookApp = New Outlook.Application 
Set oOutlook = outlookApp.GetNamespace("MAPI") 
Set oInbox = oOutlook.GetDefaultFolder(olFolderInbox) 

For Each oMail In oInbox.Items 

    If oMail.SenderEmailType = "SMTP" Then 
     strAddress = oMail.SenderEmailAddress 

    Else 
     Set objReply = oMail.Reply() 
     Set objRecipient = objReply.Recipients.Item(1) 
     strEntryId = objRecipient.EntryID 
     objReply.Close OlInspectorClose.olDiscard 
     strEntryId = objRecipient.EntryID 
     Set objAddressentry = oOutlook.GetAddressEntryFromID(strEntryId) 
     Set objExchangeUser = objAddressentry.GetExchangeUser() 
     strAddress = objExchangeUser.PrimarySmtpAddress() 
    End If 

    getSmtpMailAddress = strAddress 
    body = oMail.body 

答えて

0

ループ:

For i = oInbox.Count To 1 Step -1 
     If TypeName(oInbox.item(i)) = "MailItem" Then 
      Set oMail = oInbox.item(i) 
      'Do stuff here 
      Set oMail = Nothing 
     End If 
    Next i 
関連する問題