Как сохранить вложения из выбранных бесед Outlook с VBA - PullRequest
0 голосов
/ 05 ноября 2019

Логика такова:

  • Цикл по выбранным сообщениям.
  • Цикл по вложениям выбранных сообщений.
  • Сохранение вложений в предварительно определенной папке.

Я испытываю ошибку времени выполнения 13.

Я не уверен, какие типы не совпадают.

Public Sub SaveAttachments()
    Dim objOL As Outlook.Application
    Dim objMsg As Outlook.MailItem
    Dim objAttachments As Outlook.Attachments
    Dim objSelection As Outlook.Selection
    Dim i As Long
    Dim lngCount As Long
    Set objOL = CreateObject("Outlook.Application")
    Set objSelection = objOL.ActiveExplorer.Selection
    For Each objMsg In objSelection
        Set objAttachments = objMsg.Attachments
        lngCount = objAttachments.Count
        If lngCount > 0 Then
            For i = 1 To lngCount
                If objAttachments.Item(i).Type <> 5 Then
                    objAttachments.Item(i).SaveAsFile "C:\Users\Danny\Desktop\Attachments\" & objAttachments.Item(i).FileName
                End If
            Next i
        End If
    Next objMsg
ExitSub:
        Set objAttachments = Nothing
        Set objMsg = Nothing
        Set objSelection = Nothing
        Set objOL = Nothing
End Sub

1 Ответ

0 голосов
/ 05 ноября 2019

Объект Selection может содержать различные типы элементов Outlook - AppointmentItem, TaskItem, DocumentItem, т.е. не только MailItem. Поэтому я бы предложил вместо этого объявить элемент как object, а затем проверить класс сообщения или его тип:

Dim individualItem As Object
For Each individualItem In Application.ActiveExplorer.Selection
    'Perform some action on individualItem
Next Message
...