2013-08-02 8 views
8

Ja obecnie mam skrypt, który ja związać z reguły tak, że mogę żądania spotkań auto spadek z niektórych przedmiotów:Jak mogę cicho odmówić spotkania?

Sub AutoDeclineMeetings(oRequest As MeetingItem) 

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Request" Then 
    Exit Sub 
End If 

Dim oAppt As AppointmentItem 
Set oAppt = oRequest.GetAssociatedAppointment(True) 

Dim oResponse 
Set oResponse = oAppt.Respond(olMeetingDeclined, True) 
oResponse.Send 

End Sub 

Jednak ta wysyła odpowiedź z powrotem do organizatora spotkania, które niepotrzebnie spamu ich, ponieważ nie obchodzi ich, czy będę uczestniczyć, czy nie.

Jak mogę zmienić ten kod, aby spotkanie nie pojawiło się w moim kalendarzu i aby żadna odpowiedź nie została wysłana? Próbowałem po prostu wywoływać zarówno oAppt.Delete, jak i oRequest.Delete, ale to nie usunie elementu z mojego kalendarza.

W rzeczywistości to, czego szukam, to odpowiednik ręcznego wybierania numeru Odrzucaj -> Nie wysyłaj odpowiedzi na pytanie o spotkanie na.

+0

Jeśli nie obchodzi jeśli uczestniczyć, dlaczego w ogóle odpowiedzieć, dlaczego nie po prostu usunąć żądanie? –

+0

@JoeEnos Sądzę, że próbowałem zarówno usuwać AppointmentItem (który wydawał się nie działać), jak i Żądanie (które usunęło faktyczne żądanie e-mail, ale opuściło spotkanie w moim Kalendarzu), ale będę testować i podwójnie sprawdzać . – Sterno

+0

Po prostu dwukrotnie sprawdziłem (przez wywołanie zarówno 'oAppt.Delete' i' oRequest.Delete'), a element był nadal w moim kalendarzu. – Sterno

Odpowiedz

1

Zamiast robić oResponse.Send, spróbuj oResponse.Close(olDiscard)

+0

Niestety, nie wydaje się, aby faktycznie uratować fakt, że odrzucam, ponieważ nadal pojawia się w moim kalendarzu i mówi: "To spotkanie nie zostało przyjęte." kiedy najeżdżam na to. Próbowałem też 'oResponse.Close (olSave)', które też nie działało. – Sterno

+0

Mogę mieć inne problemy, ponieważ mój poprzedni skrypt, który wysłał odpowiedź odmowę, nie działa. Może to działa i udało mi się zrobić coś, co uniemożliwia mu wykonanie. Nie mogę teraz potwierdzić ani odrzucić tej odpowiedzi. Czy ktoś jeszcze może? – Sterno

+0

@Sterno Czy ten sam kod z twojego pytania to kod, który nie działa? A może zmodyfikowałeś go tak, aby już nie działał? Jeśli tak, czy możesz zaktualizować pytanie przy użyciu aktualnej wersji swojego skryptu? – mclark1129

-1
Sub DeclineSelected() 
    Dim Session As Outlook.NameSpace 
    Dim currentExplorer As Explorer 
    Dim Selection As Selection 
    Dim currentItem As Object 
    Dim oAppt As AppointmentItem 
    Dim oResponse 

    Set currentExplorer = Application.ActiveExplorer 
    Set Selection = currentExplorer.Selection 

    'For all items selected... 
    For Each currentItem In Selection 
     'If it is a meeting request... 
     If currentItem.MessageClass = "IPM.Schedule.Meeting.Request" Then 
      Set oAppt = currentItem.GetAssociatedAppointment(True) 
      If oAppt.ResponseRequested Then 
       Set oResponse = oAppt.Respond(olMeetingDeclined, True, False) 
       oResponse.Delete 
      Else 
       Set oResponse = oAppt.Respond(olMeetingDeclined, True, False) 
      End If 
      currentItem.Delete 

     'If it is a meeting cancellation... 
     ElseIf currentItem.MessageClass = "IPM.Schedule.Meeting.Canceled" Then 
      Set oAppt = currentItem.GetAssociatedAppointment(True) 
      If oAppt Is Nothing Then 
       currentItem.Delete 
      End If 

    'Delete if just an email... 
     ElseIf currentItem.MessageClass = "IPM.Note" Then 
      currentItem.Delete 
     End If 

    Next 
End Sub 
Powiązane problemy