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

發送會議邀請前自動對與會者進行計數
- 首先,啟動 Outlook 程式。
- 然後在Outlook主窗口中,按“ Alt + F11”鍵快捷鍵。
- 接下來,您將成功輸入Outlook VBA編輯器。 現在,您需要查找並打開“ ThisOutlookSession”項目。
- 隨後,將以下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
- 之後,您需要簽署此代碼。
- 稍後確保您的Outlook允許數字簽名的宏。
- 從現在開始,每次單擊會議邀請中的“發送”按鈕,您將收到一條消息,顯示與會者人數,資源和持續時間,如下圖所示:
靈活應對令人沮喪的Outlook腐敗
也許您以前曾經遇到過Outlook問題,例如凍結,各種錯誤消息等。 幸運的是,Outlook預先安裝了一個收件箱修復工具,稱為 掃描儀,它能夠解決小問題。 但是,如果問題很嚴重,您將需要使用更專業的工具,例如 DataNumen Outlook Repair.
作者簡介:
Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 損壞的mdf 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM

