Denna artikel lär dig hur du använder Outlook VBA för att automatiskt få ett antal deltagare innan du skickar ut en mötesinbjudan.
I likhet med att räkna mottagarna innan man skickar ett e-postmeddelande, vill vissa användare också räkna deltagarna innan de skickar en mötesinbjudan. Som vanligt syftar detta till att uppskatta den totala kostnaden för det föreslagna mötet och sedan bestämma om en sådan mötesinbjudan ska skickas till deltagarna. Eftersom Outlook tillåter användare att ange deltagare efter behov eller valfritt, vill vissa dessutom räkna deltagare i olika typer. Och det kunde inte vara bättre om mötesresurser och varaktighet kunde inkluderas. Även om Outlook inte har någon sådan direkt funktion, kan du fortfarande använda VBA-kod för att förverkliga det.

Räkna automatiskt deltagarna innan du skickar en mötesinbjudan
- Till att börja med, starta ditt Outlook-program.
- Tryck sedan på “Alt + F11” -tangenterna i huvudfönstret i Outlook.
- Därefter kommer du in i Outlook VBA-redigeraren framgångsrikt. Nu måste du hitta och öppna “ThisOutlookSession” -projektet.
- Kopiera sedan och klistra in följande VBA-koder i detta projekt.
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
- Därefter måste du underteckna den här koden.
- Senare se till att din Outlook tillåter de digitalt signerade makron.
- Från och med nu, varje gång du klickar på knappen "Skicka" i mötesinbjudningar, får du ett meddelande som visar antalet deltagare, resurser och varaktighet, som följande bild:
Hantera frustrerande Outlook-korruption flexibelt
Kanske har du någonsin stött på Outlook-problem tidigare, som frysning, olika felmeddelanden och så vidare. Lyckligtvis kommer Outlook förinstallerat med ett reparationsverktyg för inkorg, kallat som Scanpst, som kan lösa små problem. Men om problemet är allvarligt måste du återgå till ett mer specialiserat verktyg, till exempel DataNumen Outlook Repair.
Författarintroduktion:
Shirley Zhang är expert på dataåterställning DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive korrupt mdf och Outlook-programvara för reparationsprogramvara. För mer information besök www.datanumen.com

