Перейти к основному содержанию

Как рассчитать и показать возраст по дням рождения в календаре Outlook?

Как правило, день рождения контакта автоматически добавляется в календарь как ежегодная повторяющаяся встреча. Но знаете ли вы, как рассчитать возраст контакта и отобразить его прямо в календаре? В этой статье будет представлен VBA для определения возраста каждого контакта и отображения возраста относительно повторяющихся встреч в Outlook.

Расчет и отображение возраста по дням рождения в календаре Outlook

Вкладка «Office»: включите редактирование и просмотр с вкладками в Microsoft Office, упрощая работу
Kutools for Outlook - улучшите Outlook с помощью более 100 расширенных функций для повышения эффективности
Улучшите свой Outlook 2021–2010 или Outlook 365 с помощью этих расширенных функций. Наслаждайтесь полной 60-дневной бесплатной пробной версией и улучшите качество своей электронной почты!

стрелка синий правый пузырьРасчет и отображение возраста по дням рождения в календаре Outlook

Чтобы рассчитать возраст каждого контакта и отобразить возраст в теме относительной повторяющейся встречи в календаре Outlook, выполните следующие действия:

1. Откройте папку календаря по умолчанию и нажмите другой + F11 клавиши, чтобы открыть окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модули, а затем вставьте ниже код VBA в новое окно модуля.

VBA: вычисление и отображение возраста контактов в календаре Outlook

Option Explicit
Public Sub UpdateAges()
Dim xOlApp As Outlook.Application
Dim xOlFolder As Outlook.Folder
Dim xOlItems As Outlook.Items
Dim xAppointmentItem As AppointmentItem
Dim xAge As Integer
Dim xOlProp As Outlook.UserProperty
Set xOlApp = Outlook.Application
Set xOlFolder = Session.GetDefaultFolder(olFolderCalendar)
Set xOlItems = xOlFolder.Items
For Each xAppointmentItem In xOlItems
If (InStr(1, xAppointmentItem.Subject, "Birthday") Or InStr(1, xAppointmentItem.Subject, "Anniversary")) And xAppointmentItem.IsRecurring = True Then
With xAppointmentItem
If xAppointmentItem.UserProperties("Original Subject") Is Nothing Then
Set xOlProp = xAppointmentItem.UserProperties.Add("Original Subject", olText, True)
xOlProp.Value = .Subject
.Save
End If
xAge = DateDiff("yyyy", .Start, Date)
.Subject = .UserProperties("Original Subject") & " (" & xAge & " in " & Format(Date, "yyyy") & ")"
.Save
End With
End If
Next
Set xAppointmentItem = Nothing
Set xOlItems = Nothing
Set xOlFolder = Nothing
Set xOlApp = Nothing
End Sub

3, нажмите F5 ключа или Run кнопку для запуска этого VBA.

Когда вы вернетесь к календарю по умолчанию, вы увидите, что возраст каждого контакта определен и показан в теме повторяющейся встречи по случаю дня рождения. Смотрите скриншот:

Заметки:
(1) В теме повторяющегося дня рождения определенного контакта возраст этого контакта заключен в круглые скобки, аналогичные тем, что (41 в 2017), 41 это возраст, и 2017 текущий год.
(2) Если вы измените дату рождения определенного контакта в папке контактов, возраст будет автоматически удален из календаря.
(3) Этот VBA работает только с календарем Outlook по умолчанию.


стрелка синий правый пузырьСтатьи по теме


Лучшие инструменты для офисной работы

Kutools for Outlook - Более 100 мощных функций для улучшения вашего Outlook

🤖 Почтовый помощник с искусственным интеллектом: Мгновенные профессиональные электронные письма с помощью магии искусственного интеллекта: гениальные ответы одним щелчком мыши, идеальный тон, многоязычное владение. Преобразуйте электронную почту без особых усилий! ...

???? Автоматизация электронной почты: Нет на месте (доступно для POP и IMAP)  /  Расписание отправки писем  /  Автоматическое копирование/скрытая копия по правилам при отправке электронной почты  /  Автопересылка (расширенные правила)   /  Автоматическое добавление приветствия   /  Автоматически разделять электронные письма от нескольких получателей на отдельные сообщения ...

📨 Управление электронной почтой: Легко вспоминать электронные письма  /  Блокировка мошеннических писем от субъектов и других лиц  /  Удалить повторяющиеся электронные письма  /  Поиск  /  Объединение папок ...

📁 Вложения ProПакетное сохранение  /  Пакетное отсоединение  /  Пакетное сжатие  /  Автосохранение   /  Авто отсоединение  /  Автоматическое сжатие ...

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

???? Чудеса в один клик: Ответить всем с входящими вложениями  /   Антифишинговые письма  /  🕘Показать часовой пояс отправителя ...

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

Более Особенности 100 Ждем вашего исследования! Нажмите здесь, чтобы узнать больше.

 

 

Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
MsgBox "Fertig!" & vbCrLf & Zaehler & " Geburtstagseinträge geändert.", vbInformation, "Geburtstage angepasst "

Could you please translate this line for me? TIA
This comment was minimized by the moderator on the site
If possible, could you please give the above directive for auto-count in English??

Danke
This comment was minimized by the moderator on the site
Is there a way to set this up without using the birthday feature of the contact card?

On recurring could you set this up to show the number of years?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations