2013-09-14 3 views
0

Я ищу, чтобы попытаться автоматически создать встречу на основе строки темы входящего письма. Например, если я получаю электронное письмо с темой «Демо-загрузка», я хочу, чтобы он создал встречу для этого письма, в которой текст сообщения отображается как «Примечание» на Назначении. Кроме того, я хочу, чтобы назначение TIME было через 2 часа после отправки мне электронной почты. Поэтому, если я получил электронное письмо в 13:00 по восточному времени, я хочу, чтобы назначение было автоматически настроено на 3 часа ночи по восточному.Auto Create Назначение на основе электронной почты

Я знаю, что мне нужно использовать VBA и иметь внешний вид запуска скрипта, который я знаю, как все это делать. Однако все, что я сейчас знаю сейчас, это то, как вручную создать встречу, основанную на выбранном электронном письме, а не на полученном электронном письме. Кроме того, я не знаю, как он автоматически установить время или что-нибудь фантазии, как ...

Это в настоящее время все, что я ...

Sub CreateTask(Item As Outlook.MailItem) 
    Dim objTask As Outlook.TaskItem 
    Set objTask = Application.CreateItem(olTaskItem) 
With objTask 
    .Subject = Item.Subject 
    .StartDate = Item.ReceivedTime 
    .Body = Item.Body 
    .Save 
End With 
    Set objTask = Nothing 
End Sub 

ответ

1

В отредактированном варианте ...

MailItem известно из Sub CreateTask (сообщ Как MailItem)

Попробуйте заменить

Sub CreateTask(msg As MailItem) 
    Dim app As New Outlook.Application 
    Dim item As Object 
    Set item = GetCurrentItem() 
    If item.Class <> olMail Then Exit Sub 

    Dim email As MailItem 

    Set email = item 

    Dim meetingRequest As AppointmentItem 

    Set meetingRequest = app.CreateItem(olAppointmentItem) 

с

Sub CreateTask(msg As MailItem) 
    Dim meetingRequest As AppointmentItem 
    Set meetingRequest = Application.CreateItem(olAppointmentItem) 

Заменяйте электронную почту на msg везде за исключением .SenderEmailAddress

0

Я понял это после того, как играть вокруг с кода и чтения на нескольких других вещах. Это то, что я придумал.

Sub CreateTask(msg As MailItem) 
    Dim app As New Outlook.Application 
    Dim item As Object 
    Set item = GetCurrentItem() 
    If item.Class <> olMail Then Exit Sub 

    Dim email As MailItem 

    Set email = item 

    Dim meetingRequest As AppointmentItem 

    Set meetingRequest = app.CreateItem(olAppointmentItem) 

    meetingRequest.Categories = email.Categories 
    meetingRequest.Body = email.Body 
    meetingRequest.Subject = email.Subject 
    meetingRequest.Start = Date & " " & DateAdd("h", 3, Time) 

    Dim attachment As attachment 
    For Each attachment In email.Attachments 
     CopyAttachment attachment, meetingRequest.Attachments 
    Next attachment 

    Dim recipient As recipient 

    Set recipient = meetingRequest.Recipients.Add(email.SenderEmailAddress) 
    recipient.Resolve 

    For Each recipient In email.Recipients 
     RecipientToParticipant recipient, meetingRequest.Recipients 
    Next recipient 

    Dim inspector As inspector 

    Set inspector = meetingRequest.GetInspector 

    meetingRequest.Save 
    meetingRequest.Send 

End Sub 

Однако я заметил, что иногда я получаю сообщение о том, что этот скрипт нельзя загрузить. Кто-нибудь знает лучший метод или что-то, что я могу пропустить?

+0

Каково точное сообщение об ошибке и при каких обстоятельствах оно появляется? Кстати, я не знаю, знаете ли вы, но вы можете перетащить электронную почту на кнопку «Календаря», чтобы создать связанное назначение. –

Смежные вопросы