Outlook 2010 VBA Задача с вложениями


0

Outlook 2010 VBA, я хочу создать задачу при отправке электронной почты, но я хочу добавить в задачу все вложения из электронной почты, код работает хорошо, но не добавляет вложение, Я пытаюсь использовать .Attachments.Add (не поддерживается), .Attachments = item.Attachments return propierty только для чтения

можно? или как я могу приложить сообщение электронной почты к задаче?

ТНХ

здесь код

Public WithEvents myOlApp Как Outlook.Application

Private Sub Application_MAPILogonComplete()

End Sub

Private Sub Application_Startup() Initialize_handler End Sub

Public Sub Initialize_handler() Set myOlApp = CreateObject ("Outlook.Application") End Sub

Private Sub myOlApp_ItemSend (ByVal пункт As Object, Отменить As Boolean)

Dim Intres As Integer Тусклая strMsg As String дим objTask В TaskItem Набор objTask = Application.CreateItem (olTaskItem) дим strRecip As String Dim медса As MailItem Тусклого objMail As Outlook.MailItem

strMsg = "Вы хотите создать задачу для этого сообщения?" Intres = MsgBox (strMsg, vbYesNo + vbExclamation, "Create Task")

If intRes = vbNo Then 
    Cancel = False 
Else 

For Each Recipient In item.Recipients 
    strRecip = strRecip & vbCrLf & Recipient.Address 
Next Recipient 



With objTask 
    '.Body = strRecip & vbCrLf & Item.Body 
    .Body = item.Body 
    .Subject = item.Subject 
    .StartDate = item.ReceivedTime 
    .ReminderSet = True 
    .ReminderTime = DateSerial(Year(Now), Month(Now), Day(Now + 1)) + #8:00:00 AM# 
    **.Attachments.Add (item.Attachments)** 
    .Save 
End With 

Cancel = False 

End If 

Set objTask = Nothing

End Sub

  0

Вот окончательный код работает, если кто-то это нужно 25 фев. 132013-02-25 21:45:51

0

Attachments.Add позволяет передать строку в качестве параметра (полностью queslified filename) или элемент Outlook (например, MailItem). Вы передаете коллекцию вложений как параметр, вы не можете этого сделать.

Для каждого приложения сохраните вложение сначала (Attachment.SaveAsFile), а затем добавьте их в задачу, по очереди передающую имя файла в качестве параметра.

  0

Спасибо за вашу помощь 25 фев. 132013-02-25 21:46:55


1

Вот мой окончательный код

Public WithEvents myOlApp As Outlook.Application 

Private Sub Application_MAPILogonComplete() 

End Sub 

Private Sub Application_Startup() 
Initialize_handler 
End Sub 

Public Sub Initialize_handler() 
Set myOlApp = CreateObject("Outlook.Application") 
End Sub 

Private Sub myOlApp_ItemSend(ByVal item As Object, Cancel As Boolean) 

Dim intRes As Integer 
Dim strMsg As String 
Dim objTask As TaskItem 
Set objTask = Application.CreateItem(olTaskItem) 
Dim strRecip As String 
Dim att As MailItem 
Dim objMail As Outlook.MailItem 
Dim Msg As Variant 

strFolderPath = "C:\temp" ' path to target folder 


strMsg = "Do you want to create a task for this message?" 
intRes = MsgBox(strMsg, vbYesNo + vbExclamation, "Create Task") 


If intRes = vbNo Then 
    Cancel = False 
Else 

For Each Recipient In item.Recipients 
    strRecip = strRecip & vbCrLf & Recipient.Address 
Next Recipient 

item.SaveAs strFolderPath & "\" & "test" & ".msg", olMSG 

'item.Save 

With objTask 
    '.Body = strRecip & vbCrLf & Item.Body 
    .Body = item.Body 
    .Subject = item.Subject 
    .StartDate = item.ReceivedTime 
    .ReminderSet = True 
    .ReminderTime = DateSerial(Year(Now), Month(Now), Day(Now + 1)) + #8:00:00 AM# 
    .Attachments.Add item 
    .Save 
End With 

Cancel = False 

End If 

Set objTask = Nothing 

End Sub