Мне бы хотелось, чтобы следующий макрос Excel копировал данные электронной почты из outlook, и мне удалось заставить его работать с полями отправителя, даты и Темы, однако мне бы хотелось, чтобы отмеченные категории также были добавлены в следующий столбец.
Sub GetFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set olShareName = OutlookNamespace.CreateRecipient("email_address@shared.mailbox")
Set Folder = OutlookNamespace.GetSharedDefaultFolder(olShareName, olFolderInbox)
i = 1
On Error Resume Next
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= Range("From_date").Value Then
Range("eMail_subject").Offset(i, 0).Value = OutlookMail.Subject
Range("eMail_date").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("eMail_sender").Offset(i, 0).Value = OutlookMail.SenderName
Range("D" & i).Offset(i, 0).Value = OutlookMail.MailItem.Categories
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
Он проверяет дату, хранящуюся в ячейке, и на основе этого копирует упомянутые данные, что работает нормально, пока я не попытаюсь скопировать категории. Одно электронное письмо может иметь несколько категорий. Я пытался сделать таким образом Range("D" & i).Offset(i, 0).Value = OutlookMail.MailItem.Categories
или просто mailItem.Categories
, но безуспешно. Что я здесь не так делаю?
Кроме того, как я могу убедиться, что проверяются все подпапки папки входящих сообщений?