Как прикрепить файл в открытом письме?

#vba #outlook #attachment

Вопрос:

Я хочу добавить вложение в открытое электронное письмо.

 Sub AddAttachment() 
    Dim myItem As Outlook.MailItem 
    Dim myAttachments As Outlook.Attachments 
    'Set myItem = Application.CreateItem(olMailItem) 'this will create a new Email which I don't want
    Set myItem= thisEmail **I need help with this part**
    Set myAttachments = myItem.Attachments 
    myAttachments.Add "D:DocumentsQ496.xlsx", olByValue, 1, "4th Quarter 1996 Results Chart" 
    myItem.Display 
End Sub
 

Ответ №1:

Вы можете использовать это Inspector.CurrentItem свойство для извлечения почтового отправления, если оно открыто в окне инспектора.

 Sub AddAttachment() 
     Dim myItem As Outlook.MailItem 
     Dim myAttachments As Outlook.Attachments 
     'Set myItem = Application.CreateItem(olMailItem) 'this will create a new Email which I don't want
     Set myItem= Application.ActiveInspector.CurrentItem
     Set myAttachments = myItem.Attachments 
     myAttachments.Add "D:DocumentsQ496.xlsx", olByValue, 1, "4th Quarter 1996 Results Chart" 
     myItem.Display 
   End Sub
 

Если в окне выбран элемент почты Explorer , вам необходимо использовать Selection объект для извлечения выбранного в данный момент элемента в представлении папки:

 Sub AddAttachment() 
     Dim myItem As Outlook.MailItem 
     Dim myAttachments As Outlook.Attachments 
     'Set myItem = Application.CreateItem(olMailItem) 'this will create a new Email which I don't want
     Set myItem= Application.ActiveExplorer.Selection.Item(1)
     Set myAttachments = myItem.Attachments 
     myAttachments.Add "D:DocumentsQ496.xlsx", olByValue, 1, "4th Quarter 1996 Results Chart" 
     myItem.Display 
   End Sub
 

Комментарии:

1. Если пользователь редактирует встроенный ответ, ActiveExplorer.Selection.Item(1) строка должна быть заменена на Set myItem= Application.ActiveExplorer.ActiveInlineResponse