私は次のコードに取り組んでいますが、Outlookの2つの異なるフォルダから電子メールを追加しようとしていますが、機能しないために何かが間違っています。何が起こるかは、 "Apex"フォルダではなく "PolicyCenter"フォルダからすべての電子メールを取得するコードを実行するときです。私は何が間違っているのか分かりませんし、何か助けやアドバイスをいただければ幸いです!Outlookフォルダから電子メールをExcelにエクスポートする。コーディングの問題
Option Explicit
Sub VBA_Export_Outlook_Emails_To_Excel()
Dim Folder As Outlook.MAPIFolder
Dim sFolders As Outlook.MAPIFolder
Dim iRow As Integer, oRow As Integer
Dim MailBoxName As String, Pst_Folder_Name As String
MailBoxName = "Mailbox, PL-SYSTEM-OUTAGES"
Pst_Folder_Name = "Apex"
Pst_Folder_Name = "PolicyCenter"
For Each Folder In Outlook.Session.Folders(MailBoxName).Folders
If VBA.UCase(Folder.Name) = VBA.UCase(Pst_Folder_Name) Then GoTo Label_Folder_Found
For Each sFolders In Folder.Folders
If VBA.UCase(sFolders.Name) = VBA.UCase(Pst_Folder_Name) Then
Set Folder = sFolders
GoTo Label_Folder_Found
End If
Next sFolders
Next Folder
Label_Folder_Found:
If Folder.Name = "" Then
MsgBox "Invalid Data in Input"
GoTo End_Lbl1:
End If
ThisWorkbook.Sheets(1).Activate
Folder.Items.Sort "Received"
ThisWorkbook.Sheets(1).Cells(1, 1) = "Sender"
ThisWorkbook.Sheets(1).Cells(1, 2) = "Subject"
ThisWorkbook.Sheets(1).Cells(1, 3) = "Date"
ThisWorkbook.Sheets(1).Cells(1, 4) = "Size"
'ThisWorkbook.Sheets(1).Cells(1, 5) = "EmailID"
'ThisWorkbook.Sheets(1).Cells(1, 6) = "Body"
oRow = 1
For iRow = 1 To Folder.Items.Count
If VBA.DateValue(VBA.Now) - VBA.DateValue(Folder.Items.Item(iRow).ReceivedTime) <= 60 Then
oRow = oRow + 1
ThisWorkbook.Sheets(1).Cells(oRow, 1).Select
ThisWorkbook.Sheets(1).Cells(oRow, 1) = Folder.Items.Item(iRow).SenderName
ThisWorkbook.Sheets(1).Cells(oRow, 2) = Folder.Items.Item(iRow).Subject
ThisWorkbook.Sheets(1).Cells(oRow, 3) = Folder.Items.Item(iRow).ReceivedTime
ThisWorkbook.Sheets(1).Cells(oRow, 4) = Folder.Items.Item(iRow).Size
'ThisWorkbook.Sheets(1).Cells(oRow, 5) = Folder.Items.Item(iRow).SenderEmailAddress
'ThisWorkbook.Sheets(1).Cells(oRow, 6) = Folder.Items.Item(iRow).Body
End If
Next iRow
MsgBox "Outlook Mails Extracted to Excel"
Set Folder = Nothing
Set sFolders = Nothing
End_Lbl1:
End Sub
ありがとう!! -D
...私が何を意味するのかを示すためにこれをしなかった '' Pst_Folder_Nameは= "PolicyCenter" でそれを上書きします。だからコードは決して "Apex"のために動かない。 – xidgel
それでは、両方のフォルダの内容をコピーするようにする方法はありますか?私はそれを理解するいくつかの問題があります。 – Deke
は、次の2つのステートメントの間に「新しいフォルダ名」を入れますか?次のsFolders Pst_Folder_Name = "PolicyCenter"次のフォルダ –