この記事では、Outlook VBAを使用して、会議の招待状を送信する前に出席者の数を自動的に取得する方法について説明します。
メール送信前に受信者数を数えるのと同様に、会議の招待状を送る前に参加者数を数えたいユーザーもいます。通常、これは提案された会議の総費用を見積もり、参加者に会議の招待状を送るかどうかを決定することを目的としています。さらに、Outlookでは参加者を必須または任意に設定できるため、異なるタイプの参加者を数えたいユーザーもいます。会議のリソースと所要時間も含めることができれば、なお良いでしょう。Outlookにはそのような直接的な機能はありませんが、VBAコードを使用して実現することは可能です。

会議の招待状を送信する前に、参加者を自動カウントします
- まず、Outlookプログラムを起動してください。
- 次に、Outlookのメインウィンドウで、「Alt + F11」キーのショートカットを押します。
- 次に、OutlookVBAエディターに正常に入力します。 次に、「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 と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com

