Ta članek vas bo naučil, kako uporabiti Outlook VBA za samodejno pridobitev števila udeležencev, preden pošljete povabilo na sestanek.
Podobno kot pri štetju prejemnikov pred pošiljanjem e-pošte želijo nekateri uporabniki prešteti tudi udeležence, preden pošljejo vabilo na sestanek. Kot običajno je cilj tega oceniti skupne stroške predlaganega sestanka in se nato odločiti, ali bodo udeležencem poslali takšno vabilo na sestanek. Poleg tega, ker Outlook uporabnikom omogoča, da določijo udeležence kot obvezne ali neobvezne, bi nekateri radi prešteli udeležence v različnih vrstah. In ne bi moglo biti bolje, če bi lahko vključili vire in trajanje sestanka. Čeprav Outlook nima takšne neposredne funkcije, lahko za to še vedno uporabite kodo VBA.

Samodejno prešteje udeležence pred pošiljanjem povabila na sestanek
- Za začetek zaženite program Outlook.
- Nato v glavnem oknu programa Outlook pritisnite bližnjične tipke »Alt + F11«.
- Nato boste uspešno vstopili v urejevalnik Outlook VBA. Zdaj morate najti in odpreti projekt »ThisOutlookSession«.
- Nato v ta projekt kopirajte in prilepite naslednje kode 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
- Po tem morate to kodo podpisati.
- Pozneje se prepričajte, da vaš Outlook dovoljuje digitalno podpisane makre.
- Od zdaj naprej boste vsakič, ko kliknete gumb »Pošlji« v vabilih na srečanje, prejeli sporočilo s številom udeležencev, viri in trajanjem, kot je naslednja slika:
Prilagodljivo se spopadajte s frustrirajučo korupcijo Outlooka
Morda ste že kdaj naleteli na težave z Outlookom, kot so zamrznitev, razna sporočila o napakah in podobno. Na srečo ima Outlook vnaprej nameščeno orodje za popravilo mape »Prejeto«, imenovano as scanpst, ki je sposoben rešiti majhne težave. Če pa je težava resna, se boste morali znova obrniti na bolj specializirano orodje, kot je npr DataNumen Outlook Repair.
Uvod avtorja:
Shirley Zhang je strokovnjakinja za obnovitev podatkov v DataNumen, Inc., ki je vodilna na svetu na področju tehnologij za obnovitev podatkov, vključno z pokvarjen mdf in obeti za popravilo programskih izdelkov. Za več informacij obiščite www.datanumen.com

