发送电子邮件后设置提醒

时间:2018-06-13 15:57:32

标签: excel vba outlook

有没有办法在发送电子邮件后设置提醒

我有VBA代码,用于创建电子邮件并设置提醒。

Sub RendaFixaAplicação()

Dim texto As String

Dim OutApp As Object
Dim OutMail As Object

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

texto = Range("J2").Value & ",insert some text here"

With OutMail
    .Display
    .to = Range("J3").Value
    .CC = Range("J4").Value
    .Subject = "Insert a subject here " & Range("E2").Value
    .HTMLBody = texto & .HTMLBody
End With
On Error GoTo 0

Set OutMail = Nothing
Set OutApp = Nothing

Call alerta1

End Sub

提醒是通过"呼叫alerta1"在代码的末尾,编程如下:

Sub alerta1()
Dim objOutlookApp As Outlook.Application
Dim objTask As Outlook.TaskItem
Dim hora As String
Dim wd As WorksheetFunction
Set wd = Application.WorksheetFunction
Dim diautil As Date
diautil = wd.WorkDay(Date, 1)

If Time > "15:00:00" Then
    hora = diautil & " 14:00:00"
Else
    If Time < "14:00:00" Then
        hora = Date & " 14:00:00"
    Else
        hora = Date & " 14:45:00"
    End If
End If

Set objOutlookApp = CreateObject("Outlook.Application")
Set objTask = objOutlookApp.CreateItem(olTaskItem)
objTask.Subject = "Insert a Subject Here - " & Range("E2").Value
objTask.Display

objTask.body = "Cliente: " & Range("K2").Value & vbNewLine & "Email cliente: " & Range("J3").Value
objTask.ReminderSet = True
objTask.ReminderTime = hora
objTask.DueDate = hora
objTask.Close (olSave)

End Sub

它设置提醒我是否发送电子邮件。

我无法使用。发送电子邮件,因为需要在电子邮件中进行一些编辑。

有没有办法让Excel等待发送电子邮件然后运行&#34; alerta1&#34;?

1 个答案:

答案 0 :(得分:0)

首先,不需要在每个方法中创建新的Outlook应用程序实例。

理想情况下,您可以在Outlook中的ItemAdd文件夹中挂钩Sent Items事件。但是,可以在发送后删除项目而不保存到Sent Items文件夹。 DeleteAfterSubmit属性允许设置一个布尔值,如果在发送时未保存邮件的副本,则为True;如果副本保存在已发送邮件文件夹中,则为False。

所以,我建议处理Application类的ItemSend事件,当用户通过Inspector发送Microsoft Outlook项目时会触发该事件(在检查器关闭之前,但在用户之后)单击“发送”按钮)或在程序中使用Outlook项目的Send方法(如MailItem)时。在事件处理程序中,您将可以访问正在发送的项目,并可以为其创建新任务。