如何在Outlook中發送會議邀請之前自動計算出席者

立即分享:

本文將教您如何在發送會議邀請之前利用Outlook VBA自動獲取與會者人數。 

類似於發送電子郵件前統計收件者數量,有些使用者也希望在發送會議邀請之前統計參加人數。通常,這樣做是為了估算擬議會議的總成本,然後決定是否向與會者發送會議邀請。此外,由於 Outlook 允許使用者將與會者設定為必選或可選,因此一些使用者希望統計不同類型的與會者。如果還能統計會議資源和時長,那就更好了。雖然 Outlook 沒有直接提供這樣的功能,但您仍然可以使用 VBA 程式碼來實現。

在Outlook中發送會議邀請之前,自動對與會者進行計數

發送會議邀請前自動對與會者進行計數

  1. 首先,啟動 Outlook 程式。
  2. 然後在Outlook主窗口中,按“ Alt + F11”鍵快捷鍵。
  3. 接下來,您將成功輸入Outlook VBA編輯器。 現在,您需要查找並打開“ ThisOutlookSession”項目。
  4. 隨後,將以下VBA代碼複製並粘貼到該項目中。
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objMeetingInvitation As Outlook.MeetingItem
    Dim objMeeting As Outlook.AppointmentItem
    Dim objAttendees As Outlook.Recipients
    Dim objAttendee As Outlook.recipient
    Dim lRequiredAttendeeCount, lOptionalAttendeeCount, lResourceCount As Long
    Dim strMsg As String
    Dim nPrompt As Integer
 
    If TypeOf Item Is MeetingItem Then
       Set objMeetingInvitation = Item
       Set objMeeting = objMeetingInvitation.GetAssociatedAppointment(True)
       Set objAttendees = objMeetingInvitation.Recipients
    End If
 
    lRequiredAttendeeCount = 0
    lOptionalAttendeeCount = 0
    lResourceCount = 0
 
    'Count the required & optional attendees and resources, etc.
    For Each objAttendee In objAttendees
         If objAttendee.Type = olRequired Then
            lRequiredAttendeeCount = lRequiredAttendeeCount + 1
         ElseIf objAttendee.Type = olOptional Then
            lOptionalAttendeeCount = lOptionalAttendeeCount + 1
         ElseIf objAttendee.Type = olResource Then
            lResourceCount = lResourceCount + 1
         End If
    Next
 
    'Double check the meeting invitation details
    strMsg = "Meeting Details:" & vbCrLf & vbCrLf & _
     "Required Attendees: " & lRequiredAttendeeCount & vbCrLf & _
     "Optional Attendees: " & lOptionalAttendeeCount & vbCrLf & _
     "Resources: " & lResourceCount & vbCrLf & _
     "Duration: " & GetDuration(objMeeting) & vbCrLf & vbCrLf & _
     "Are you sure to send this meeting invitation?"
 
    nPrompt = MsgBox(strMsg, vbExclamation + vbYesNo, "Double Check Meeting Invitation")
 
    If nPrompt = vbYes Then
       Cancel = False
    Else
       Cancel = True
    End If
End Sub

Function GetDuration(objCurMeeting As AppointmentItem) As String
    'Convert minute to hour
    If objCurMeeting.Duration > 60 Then
       GetDuration = Round(objCurMeeting.Duration / 60, 1) & " hours"
    ElseIf objCurMeeting.Duration = 60 Then
       GetDuration = Round(objCurMeeting.Duration / 60, 1) & " hour"
    ElseIf objCurMeeting.Duration < 60 Then
       GetDuration = objCurMeeting.Duration & " mins"
    End If
End Function

VBA代碼-在發送會議邀請之前自動對與會者進行計數

  1. 之後,您需要簽署此代碼。
  2. 稍後確保您的Outlook允許數字簽名的宏。
  3. 從現在開始,每次單擊會議邀請中的“發送”按鈕,您將收到一條消息,顯示與會者人數,資源和持續時間,如下圖所示:顯示出席人數的消息

靈活應對令人沮喪的Outlook腐敗

也許您以前曾經遇到過Outlook問題,例如凍結,各種錯誤消息等。 幸運的是,Outlook預先安裝了一個收件箱修復工具,稱為 掃描儀,它能夠解決小問題。 但是,如果問題很嚴重,您將需要使用更專業的工具,例如 DataNumen Outlook Repair.

作者簡介:

Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 損壞的mdf 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

立即分享:

評論被關閉。