Outlook VBA:拒绝会议,在发送前编辑响应,然后将其暂定在日历上

时间:2019-06-11 03:33:11

标签: outlook outlook-vba

使用VBA,我想简化Outlook中用于拒绝会议但将其保留在日历中的当前流程。当前过程是:

  1. 双击会议邀请以在检查器中将其打开
  2. 点击“拒绝:发送前编辑回复...”
  3. 输入给会议主席的消息,说明为什么我不参加
  4. 点击“发送”
  5. 进入我的“已删除邮件”文件夹,找到会议邀请并打开它
  6. 点击“暂定:不发送回复”

我发现的任何VBA示例都在使用VBA创建会议副本。这打破了与原始会议的联系,这意味着该会议不会被更新,以后我将无法接受。我想按照上面列出的确切步骤进行操作以保持链接。

下面有简化的代码,但是有两个主要问题:

  1. 没有“暂停”可以让我在发送响应之前对其进行编辑。检查器窗口打开,但是代码继续执行。如果无法实现,则次要的选择是放弃这个想法,而是自己继续执行第1-3步,但是要执行一个宏,而不是在第4步中按“发送”。宏将仅执行步骤4-6。
  2. 下面的代码发送拒绝请求,然后在我的日历上放置一个临时会议(根据需要),但是稍后,如果我尝试接受该会议,Outlook将抱怨“此会议已被移动或删除”。按照上面列出的6个步骤进行手动操作,我没有这个问题。

代码:

    Public Sub DeclineButKeep()

    Dim oAppt As Outlook.AppointmentItem
    Dim oResponse As Outlook.MeetingItem
    Dim oRequest As Outlook.MeetingItem

    Set oRequest = GetCurrentItem

    Set oAppt = oRequest.GetAssociatedAppointment(True)
    Set oResponse = oAppt.Respond(olMeetingDeclined, False, True)
    oResponse.Send

    Set oAppt = oRequest.GetAssociatedAppointment(True)
    Set oResponse = oAppt.Respond(olMeetingTentative, True)

    oRequest.Delete

    Set oAppt = Nothing
    Set oResponse = Nothing
    Set oRequest = Nothing

    End Sub

0 个答案:

没有答案