Tento článek vás naučí, jak používat Outlook VBA k automatickému získání počtu účastníků před odesláním pozvánky na schůzku.
Podobně jako u počítání příjemců před odesláním e-mailu si někteří uživatelé přejí spočítat účastníky před odesláním pozvánky na schůzku. Jako obvykle se jedná o odhad celkových nákladů na navrhovanou schůzku a následné rozhodnutí, zda účastníkům pozvánku na schůzku odeslat. Navíc, protože Outlook uživatelům umožňuje nastavit účastníky jako povinné nebo volitelné, někteří by chtěli počítat účastníky v různých typech. A nemohlo by být lepší, kdyby bylo možné zahrnout zdroje pro schůzku a dobu trvání. Ačkoli Outlook takovou přímou funkci nemá, stále můžete k jejímu provedení použít kód VBA.

Automatické počítání účastníků před odesláním pozvánky na schůzku
- Nejprve spusťte program Outlook.
- Poté v hlavním okně aplikace Outlook stiskněte klávesové zkratky „Alt + F11“.
- Dále úspěšně vstoupíte do editoru Outlook VBA. Nyní musíte najít a otevřít projekt „ThisOutlookSession“.
- Následně zkopírujte a vložte následující kódy VBA do tohoto projektu.
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
- Poté musíte tento kód podepsat.
- Později se ujistěte, že váš Outlook povoluje digitálně podepsaná makra.
- Od této chvíle pokaždé, když v pozvánkách na schůzku kliknete na tlačítko „Odeslat“, dostanete zprávu s počtem účastníků, zdroji a trváním, jako je následující obrázek:
Flexibilně se vypořádejte s frustrující korupcí
Možná jste se již někdy setkali s problémy s Outlookem, jako je zamrzání, různé chybové zprávy a podobně. Naštěstí je v Outlooku předinstalovaný nástroj pro opravu doručené pošty, který se nazývá as scanpst, který je schopen řešit malé problémy. Ale pokud je problém vážný, budete muset znovu použít specializovanější nástroj, jako je např DataNumen Outlook Repair.
Úvod autora:
Shirley Zhang je expertem na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně zkorumpovaný mdf a výhledové softwarové produkty pro opravy. Pro více informací navštivte www.datanumen.com

