Beschreibung
Outlook bietet von Haus aus an, Feiertage zu importieren. Es werden dabei alle Feiertage des gewählten Landes importiert und mit der Kategorie „Feiertag“ versehen. Da bei mir in NRW nicht an allen deutschen Feiertagen frei ist, können diese getrost aus der Kategorie „Feiertag“ entfernt werden. Da ich an den übrigen Feiertagen allerdings in der Regel nicht im Büro bin, können diese auch auf „abwesend“ gesetzt werden.
Das Entfernen der Kategorie geht von Hand relativ schnell. Die anderen Tage auf „abwesend“ zu setzen ist hingegen von Hand eher eine Fleißarbeit. Das folgende Outlook VBA-Makro übernimmt diese Aufgabe und kann auch leicht an andere Bundesländer angepasst werden.
Hinweis: Das Importieren der Feiertage in Outlook 2010 erfolgt über Datei – Optionen – Kalender und dort unter Kalenderoptionen über die Schaltfläche Feiertage hinzufügen.
Sourcecode
Sub setFeiertageAbwesend()
' Die Anwendung erfolgt im gerade selektierten Kalender
Dim olFolder As MAPIFolder
Set olFolder = Application.ActiveExplorer.CurrentFolder
' Ist kein Kalender selektiert, wird die Operation übersprungen
If olFolder.DefaultItemType = olAppointmentItem Then
Dim olApptItem As Outlook.AppointmentItem
For Each olApptItem In olFolder.Items
With olApptItem
' Nur Termine der Kategorie "Feiertag" bearbeiten
If InStr(.Categories, "Feiertag") Then
' Nur Termine die als "frei" angezeigt werden bearbeiten
If .BusyStatus = olFree Then
' Nur NRW-Feiertage als "Abwesend" markieren
If InStr(.ConversationTopic, "Heilige Drei Könige") = 0 And _
InStr(.ConversationTopic, "Mariä Himmelfahrt") = 0 And _
InStr(.ConversationTopic, "Buß- und Bettag") = 0 And _
InStr(.ConversationTopic, "Reformationstag") = 0 Then
.BusyStatus = olOutOfOffice
.Save
Else
' Nicht NRW-Feiertage aus der Kategorie "Feiertag" entfernen
.Categories = Replace(.Categories, "Feiertag", "")
.Save
End If
End If
End If
End With
Next olApptItem
End If
End Sub