You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为MS Project生成的Outlook会议邀请添加多个参会者

解决MS Project任务同步Outlook会议时添加多个资源参会者的问题

原代码仅获取任务的第一个资源并添加为参会者,要实现给所有分配资源发送会议邀请,需要循环遍历任务的所有资源,逐个添加为Outlook会议的必填参会者。

修改后的完整代码

Option Explicit

Public myOLApp As Outlook.Application

Sub Export_Selection_To_OL_Appointments()
    Dim myTask As Task
    Dim myItem As Outlook.AppointmentItem
    Dim myRequiredAttendee As Outlook.Recipient
    Dim myPResEmail As String
    Dim res As Resource ' 新增资源对象变量,用于遍历所有资源

    On Error Resume Next
    Set myOLApp = CreateObject("Outlook.Application")

    For Each myTask In ActiveSelection.Tasks
        Set myItem = myOLApp.CreateItem(olAppointmentItem)
        With myItem
            .MeetingStatus = olMeeting
            .Start = myTask.Start
            .End = myTask.Finish
            .Subject = myTask.Name & " (MS Project Task)"
            .Location = myTask.Text3
            .Categories = myTask.UniqueID
            .Body = myTask.Notes
            .BusyStatus = olFree

            ' 循环遍历任务的所有分配资源,逐个添加为必填参会者
            For Each res In myTask.Resources
                myPResEmail = res.EMailAddress
                ' 跳过空邮箱的资源,避免无效参会者
                If myPResEmail <> "" Then
                    Set myRequiredAttendee = .Recipients.Add(myPResEmail)
                    myRequiredAttendee.Type = olRequired
                End If
            Next res

            .ReminderSet = True
            .ReminderOverrideDefault = True
            .ReminderMinutesBeforeStart = myTask.Number1
                
            .Categories = myTask.Guid

            .Send
        End With
    Next myTask

End Sub

关键修改说明

  • 新增res As Resource变量,用来遍历任务下的所有资源
  • 替换原单一资源获取逻辑,用For Each res In myTask.Resources循环处理每个资源
  • 添加空邮箱判断If myPResEmail <> "" Then,避免添加无效的参会者条目
  • 保留原代码的其他功能(会议时间、主题、提醒等设置)

内容的提问来源于stack exchange,提问作者Rick Hiddink

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:42:06