For most users, the appointments scheduled on weekend are usually private. Hence, they want Outlook to automatically mark and show such appointments as private. In this article, we will make this come true with a bit of scripting.
So as to distinguish between the business and private appointments more easily, Outlook permits users to mark appointments as private. In this way, you will find it pretty convenient and easy to print calendar without private appointments. In this situation, you may wish your Outlook to auto recognize and mark specific appointments as private. For instance, generally, the appointments on weekend are private, thus you want to let Outlook auto mark them as private. Thereinafter, we will guide you achieve it.
Auto Mark Weekend Appointments as Private
- At first, launch Outlook VBA editor according to “How to Run VBA Code in Your Outlook“.
- Then, in “Microsoft Visual Basic for Applications” window, put the following code into the “ThisOutlookSession” project.
Public WithEvents objInspectors As Outlook.Inspectors Public WithEvents objExplorer As Outlook.Explorer Public WithEvents objAppointment As Outlook.AppointmentItem Private Sub Application_Startup() Set objInspectors = Outlook.Application.Inspectors Set objExplorer = Outlook.Application.ActiveExplorer End Sub Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector) If Inspector.CurrentItem.Class = olAppointment Then Set objAppointment = Inspector.CurrentItem End If End Sub Private Sub objExplorer_Activate() On Error Resume Next If objExplorer.Selection.Item(1).Class = olAppointment Then Set objAppointment = objExplorer.Selection.Item(1) End If End Sub Private Sub objAppointment_Open(Cancel As Boolean) Call MarkWeedendAppointmentPrivate(objAppointment) End Sub Private Sub objAppointment_PropertyChange(ByVal Name As String) If Name = "Start" Or Name = "End" Then Call MarkWeedendAppointmentPrivate(objAppointment) End If End Sub Private Sub MarkWeedendAppointmentPrivate(ByVal objAppointment As Outlook.AppointmentItem) Dim dStartDate As Date dStartDate = Format(objAppointment.Start, "Short Date") 'If the appointment start falls on weekend Select Case Weekday(dStartDate) Case 7, 1 'Mark it private objAppointment.Sensitivity = olPrivate End Select End Sub
- After that, restart Outlook to activate the macro.
- From now on, every time when you create a new appointment or change an existing appointment to the weekend, Outlook will auto mark it as private.
Solve Annoying Outlook Problems
It is possible that you have encountered some issues when dealing with Outlook, such as unexpected application freezing, popup error messages and so on. When suffering them, you would be worried. Please calm down! Panic will help nothing, but make case worsen. In the first place, you can check if you can access the PST file as usual. If so, you have to repair the PST file, which can be accomplished via the inbox repair tool or a more powerful external tool, like DataNumen Outlook Repair.
Shirley Zhang is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including mdf repair and outlook repair software products. For more information visit www.datanumen.com