Перейти до основного матеріалу

Як автоматично відхиляти запрошення на збори від конкретних людей в Outlook? 

В Outlook ми можемо створити правило для автоматичного відхилення деяких запрошень на зустріч від конкретних людей, але, як з цим боротися? Ця стаття детально представить метод.

Автоматично відхиляйте запрошення на збори від конкретних людей у ​​програмі Outlook

Автоматично відхиляти запрошення на зустріч від певних людей і також видаляти зустріч із календаря


Автоматично відхиляйте запрошення на збори від конкретних людей у ​​програмі Outlook

Для завершення цієї роботи виконайте такі дії:

1. Спочатку слід створити шаблон повідомлення для відхилення запрошень на зустріч. В Повідомлення у вікні введіть повідомлення, яке потрібно надіслати для відхилення запрошень на зустріч. Дивіться знімок екрана:

2. Потім збережіть повідомлення у форматі шаблону, натисніть філе > Зберегти як, В Зберегти як вікно, введіть ім'я повідомлення в Файл текстове поле, а потім виберіть Шаблон Outlook (*. Часто) від Зберегти як випадаючий список, див. знімок екрана:

примітки: При виборі Шаблон Outlook (*. Часто), буде відкрито папку шаблону користувача за замовчуванням.

3. Потім натисніть зберегти , щоб зберегти шаблон повідомлення та закрити вікно повідомлення.

4. А потім, ви можете створити правило. Клацніть, будь ласка Правила > Керування правилами та сповіщеннями під Головна вкладку, див. знімок екрана:

5, в Правила та попередження діалогове вікно натисніть кнопку Нове правило від Правила електронної пошти вкладку, див. знімок екрана:

6. В вискочив Майстер правил, Натисніть Застосувати правило до повідомлення, яке я отримую опція під Почніть з пустого правила розділ, див. знімок екрана:

7. Потім натисніть МАЙБУТНІ , а у діалоговому вікні, що вискочило, встановіть прапорець від людей або громадської групи в Крок 1: Виберіть умову , а потім клацніть текстове посилання людей або громадської групи відкрити Адреса правила і виберіть людей, від яких потрібно відхилити зустріч, див. знімок екрана:

8. Клацання OK у цьому діалоговому вікні, прокрутіть, щоб перевірити що являє собою запрошення на зустріч або оновлення опція від Крок 1: Виберіть умову вікно списку, див. знімок екрана:

9. Продовжуйте натискати МАЙБУТНІ в наступному діалоговому вікні:

(1.) Перевірте Відповісти за допомогою певного шаблону варіант в Крок 1: Виберіть дію (дії) вікно списку;

(2.) А потім клацніть текстове посилання конкретний шаблон відкрити Виберіть шаблон відповіді діалогове вікно;

(3.) У Виберіть шаблон відповіді діалогове вікно, виберіть Шаблони користувачів у Файлова система від Заглядати випадає;

(4.) Потім виберіть ім’я повідомлення, яке ви створили щойно;

(5.) Клацніть відкритий кнопки.

10. Поверніться до початкового діалогового вікна, продовжуйте перевірку Видалити його опція в Крок 1: Виберіть дію (дії) вікно списку, див. знімок екрана:

11. Клацання МАЙБУТНІ > МАЙБУТНІ щоб перейти до діалогового вікна останнього кроку. В обробка розділ налаштування правила, вкажіть назву цього правила та встановіть прапорець Увімкніть це правило опція від Крок 2: Параметри правила встановлення, див. скріншот:

12. Клацання обробка , щоб закінчити це правило, потім натисніть OK закрити діалогове вікно.

13. Відтепер, при отриманні зустрічі від конкретних людей, йому автоматично надсилатиметься електронний лист про відхилення, а також буде видалятися повідомлення про зустріч.


Автоматично відхиляти запрошення на зустріч від певних людей і також видаляти зустріч із календаря

Перший спосіб допомагає надіслати людині електронний лист із повідомленням про те, що ви не відвідаєте зустріч, але зустрічі завжди відображатимуться у вашому календарі. Якщо вам потрібно видалити зустрічі, які одночасно відображаються у вашому календарі, наведений нижче код VBA може зробити вам послугу.

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2, в Microsoft Visual Basic для додатків вікно, двічі клацніть ThisOutlookSession від Проект1 (VbaProject.OTM) панелі, щоб відкрити модуль, а потім скопіюйте та вставте наступний код у порожній модуль.

Код VBA: автоматично відхиляти запрошення на зустрічі та також видаляти зустрічі з календаря:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
    Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
    If xItem.Class = olMeetingRequest Then
        Set xMeeting = xItem
        xMeeting.ReminderSet = False
        If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then 'Specify the person you need
            Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
            xAppointmentItem.ReminderSet = False
            Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
            xMeetingDeclined.Body = "Dear, " & vbCrLf & _
                                    "I am not at office. " & vbCrLf & _
                                    "I'm sorry that I will not attend the meeting invitations."
            xMeetingDeclined.Send
            xMeeting.Delete
        End If
    End If
Next
End Sub

3. Потім збережіть і закрийте це вікно коду. Відтепер, якщо будуть зустрічі від цієї конкретної особи, вона отримає відхилений електронний лист, а зустріч буде автоматично видалено з вашого календаря.


Найкращі інструменти продуктивності офісу

Kutools для Outlook - Понад 100 потужних функцій, які покращать ваш Outlook

🤖 AI Mail Assistant: Миттєві професійні електронні листи з магією штучного інтелекту – геніальні відповіді одним клацанням, ідеальний тон, багатомовна майстерність. Трансформуйте електронну пошту без зусиль! ...

???? Автоматизація електронної пошти: Поза офісом (доступно для POP та IMAP)  /  Розклад надсилання електронних листів  /  Автоматична копія/прихована копія за правилами під час надсилання електронної пошти  /  Автоматичне пересилання (розширені правила)   /  Автоматично додавати привітання   /  Автоматично розділяйте електронні листи кількох одержувачів на окремі повідомлення ...

📨 Управління електронною поштою: Легко відкликайте електронні листи  /  Блокуйте шахрайські електронні листи за темами та іншими  /  Видалити повторювані електронні листи  /  розширений пошук  /  Консолідація папок ...

📁 Вкладення ProПакетне збереження  /  Пакетне від'єднання  /  Пакетний компрес  /  Автозавантаження   /  Автоматичне від'єднання  /  Автокомпресія ...

???? Магія інтерфейсу: 😊Більше красивих і класних смайликів   /  Підвищте продуктивність Outlook за допомогою вкладок  /  Згорніть Outlook замість того, щоб закривати ...

👍 Дива в один клік: Відповісти всім із вхідними вкладеннями  /   Антифішингові електронні листи  /  🕘Показувати часовий пояс відправника ...

👩🏼‍🤝‍👩🏻 Контакти та календар: Пакетне додавання контактів із вибраних електронних листів  /  Розділіть групу контактів на окремі групи  /  Видаліть нагадування про день народження ...

більше Особливості 100 Чекайте на ваше дослідження! Натисніть тут, щоб дізнатися більше.

 

 

 

Comments (33)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Good morning, the code I pasted below erases the email but not the calendar event.

Scenario is a meeting forwarding to a DL that contains my personal email . At this moment I receive the event in both the calendars, rightly to the shared calendars connected to the DL, but also to my personal agenda, I would not.

Please could you help me with the code?

thx
Francesco


Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
If xItem.Class = olMeetingRequest Then
Set xMeeting = xItem
xMeeting.ReminderSet = False
If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then
Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
xAppointmentItem.Delete
xMeeting.Delete
End If
End If
Next
End Sub
This comment was minimized by the moderator on the site
Buongiorno, con il codice sotto mi viene eliminata la mail ricevuta ma non l'evento nel calendario personale.

Lo scenario è inoltro di un meeting ad una DL a cui è collegato il mio account. Al momento ricevo l'evento sia nel calendario condiviso collegato alla DL (corretto!) sia nel mio personale, dal quale invece non vorrei vederlo.

Potete aiutarmi?

grazie
Francesco


Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
If xItem.Class = olMeetingRequest Then
Set xMeeting = xItem
xMeeting.ReminderSet = False
If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then
Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
xAppointmentItem.Delete
xMeeting.Delete
End If
End If
Next
End Sub
This comment was minimized by the moderator on the site
thanks for the great advice. How does the VBA need to be changed if I don't want to auto-decline invites from specific senders, but if I want invites to be declined (and removed!) that are sent to me as a member of a distribution list? I don't want to leave the distribution list, but since I work remotely, on-site meetings don't make sense to me, but the pure mails from this particular group do.
This comment was minimized by the moderator on the site
Hallo

Werden auch Terminanfragen gelöscht, die "im Auftrag von" abgelehnt und gelöscht?
Bin mir nicht ganz sicher, ob der Code funktioniert, da Termine die "im Auftrag von" nicht gelöscht werden, obwohl der/die Absender ebenfalls aufgeführt ist.

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
If xItem.Class = olMeetingRequest Then
Set xMeeting = xItem
xMeeting.ReminderSet = False
If VBA.InStr(VBA.LCase(", "), VBA.LCase(xMeeting.SenderEmailAddress)) <> 0 Then 'Specify the person you need
Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
'xAppointmentItem.ReminderSet = False
'Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
'xMeetingDeclined.Body = "Dear, " & vbCrLf & _
"I am not at office. " & vbCrLf & _
"I'm sorry that I will not attend the meeting invitations."
'xMeetingDeclined.Send
xAppointmentItem.Delete
xMeeting.Delete
End If
End If
Next
End Sub
This comment was minimized by the moderator on the site
Wie würde der Codeaussehen, wenn man dort mehrere Empfänger hinterlegen möchte?

Gruß
Thomas
This comment was minimized by the moderator on the site
Hallo

Wie würde der Code aussehen, wenn ich mehrere Absender habe, dessen Termin ich ohne Antwort ablehnen will?

Danke schön
This comment was minimized by the moderator on the site
buen dia,
¿hay posibilidad de añadir una condición para el rechazo de la invitación?
me refiero a validar si a la hora de la reunión se está libre o no, en caso de tener otra reunión si rechazar automáticamente.

gracias
This comment was minimized by the moderator on the site
Hi, skyyang
Thank you for your information.

I have one question about this.
If i don't want to repley email of attending, which code can i use ?
Could you please update with this option?
This comment was minimized by the moderator on the site
Hello, dedn,
To remove the meetings but don't send a response, please apply the below code:
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
    Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
    If xItem.Class = olMeetingRequest Then
        Set xMeeting = xItem
        xMeeting.ReminderSet = False
        If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then 'Specify the person you need
            Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
            'xAppointmentItem.ReminderSet = False
            'Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
            'xMeetingDeclined.Body = "Dear, " & vbCrLf & _
                                    "I am not at office. " & vbCrLf & _
                                    "I'm sorry that I will not attend the meeting invitations."
            'xMeetingDeclined.Send
            xAppointmentItem.Delete
            xMeeting.Delete
        End If
    End If
Next
End Sub

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
Hallo
Danke für den Code.
Wie müßte die Zeile 14 aussehen, wenn man mehrere Absender hat?

Danke schön.
This comment was minimized by the moderator on the site
Hello, Thomas,
If you want to set multiple senders in the code, please apply the below code:
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
  Dim xEntryIDs
  Dim xItem
  Dim i As Integer
  Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
  Dim xAppointmentItem As AppointmentItem
  On Error Resume Next
  xEntryIDs = Split(EntryIDCollection, ",")
  For i = 0 To UBound(xEntryIDs)
      Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
      If xItem.Class = olMeetingRequest Then
          Set xMeeting = xItem
          xMeeting.ReminderSet = False
          If VBA.InStr(VBA.LCase(", "), VBA.LCase(xMeeting.SenderEmailAddress)) <> 0 Then 'Specify the person you need
              Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
              'xAppointmentItem.ReminderSet = False
              'Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
              'xMeetingDeclined.Body = "Dear, " & vbCrLf & _
                                      "I am not at office. " & vbCrLf & _
                                      "I'm sorry that I will not attend the meeting invitations."
              'xMeetingDeclined.Send
              xAppointmentItem.Delete
              xMeeting.Delete
          End If
      End If
  Next
End Sub


Note: If there are more senders need to be added, please add the emails into this script If VBA.InStr(VBA.LCase(", "), VBA.LCase(xMeeting.SenderEmailAddress)) <> 0 Then

Please try, hope it can help you!
This comment was minimized by the moderator on the site
Hi, skyyang
Thank you for your information.

I have one question about this.
If i don't want to repley email of attending, which code can i use ?
Could you please update with this option?
This comment was minimized by the moderator on the site
skyyang I get lots of emails from an automated and unmanned inbox, so I don't want to send a reply to them about declining the meeting. Would I instead just cut out the .Body and .Send segments and use this?:
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
If xItem.Class = olMeetingRequest Then
Set xMeeting = xItem
xMeeting.ReminderSet = False
If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then 'Specify the person you need
Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
xAppointmentItem.ReminderSet = False
Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
xMeeting.Delete
End If
End If
Next
End Sub


Cheers,
This comment was minimized by the moderator on the site
Hello, D
What do you mean the automated and unmanned inbox?
Could you explain it more detailed, thank you!
This comment was minimized by the moderator on the site
Hello,

Thank you for sharing. Could you please update the VBL with more options? I need to decline and remove from my calendar meeting invites with the following:
- from specific people - already covered in your VBL
- with specific words in the body
- with specific words in the subject
- except if sent to people or public group
- except if my name is in the To or CC box
- except if it marked as importance
- except if the subject contains specific words

About this part:
f VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then 'Specify the person you need

I will replace the with the sender I need to filter and decline the invites from but I don't understand if I need to replace this part with anything specific " Specify the person you need" or just leave as is?
This comment was minimized by the moderator on the site
I have the same question as Dan about "Then 'Specify the person you need"

Thank you!
This comment was minimized by the moderator on the site
Hello, Rriela,
In the code, you juse need to change the sender address "" to the sender that you want to decline the invites from.
'Specify the person you need :This text is only annotation, you can leave or delete it as you need.
This comment was minimized by the moderator on the site
Okay thank you! I did mine like this:

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim xEntryIDs
Dim xItem
Dim i As Integer
Dim xMeeting As MeetingItem, xMeetingDeclined As MeetingItem
Dim xAppointmentItem As AppointmentItem
On Error Resume Next
xEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(xEntryIDs)
Set xItem = Application.Session.GetItemFromID(xEntryIDs(i))
If xItem.Class = olMeetingRequest Then
Set xMeeting = xItem
xMeeting.ReminderSet = False
If VBA.LCase(xMeeting.SenderEmailAddress) = VBA.LCase("") Then 'Specify the person you need
Set xAppointmentItem = xMeeting.GetAssociatedAppointment(True)
xAppointmentItem.ReminderSet = False
Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
xMeetingDeclined.Body = "Dear Fake, " & vbCrLf & _
"I will not attend this meeting. Thank you."
xMeetingDeclined.Send
xMeeting.Delete
End If
End If
Next
End Sub

But I wonder if there is a way to decline the meeting and delete it from my calendar WITHOUT sending a response? Can I just delete this part:
Set xMeetingDeclined = xAppointmentItem.Respond(olMeetingDeclined)
xMeetingDeclined.Body = "Dear Fake, " & vbCrLf & _
"I will not attend this meeting. Thank you."

Thank you so much for your help
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations