See it in Action!Watch this video to see this macro in action.
The CodeHere is the code behind this macro.
'Leverage & Lean "Less Clicks, More Results" Sub GreetingGoodbye() ' Means that these variables are in use Dim EmailBody As String ' Dim Goodbye As String ' Dim Greeting As String ' Dim olDocument As Word.Document ' Dim olEmail As Outlook.MailItem ' Dim olInspector As Outlook.Inspector ' Dim olSelection As Word.Selection ' Dim TimeofDay As Date ' Dim Weekday As String ' On Error GoTo LeverageLean 'Select the current email Set olInspector = Application.ActiveInspector() Set olEmail = olInspector.CurrentItem Weekday = Format(Date, "dddd") 'What day of the week is it? TimeofDay = Time() 'What time is it now? 'Custom Greeting and Goodbye based on answers If TimeofDay < "9:00:00 AM" Then Greeting = "Good Morning" ElseIf Weekday = "Friday" And TimeofDay > "3:30:00 PM" Then Greeting = "Hello" Goodbye = "Enjoy your weekend!" ElseIf TimeofDay > "3:30:00 PM" Then Greeting = "Hello" Goodbye = "Have a great night!" ElseIf Greeting = "" Then Greeting = "Hello" End If 'Create the text for the Email Body EmailBody = Greeting & "," & vbNewLine & vbNewLine & Goodbye 'Paste the text into the beginning of the email Set olDocument = olInspector.WordEditor Set olSelection = olDocument.Application.Selection olSelection.TypeText EmailBody bDiscardEvents = False Set olInspector = Nothing Set olEmail = Nothing Set olDocument = Nothing Set olSelection = Nothing Exit Sub LeverageLean: MsgBox ("Something went wrong. If you are automatically firing this macro try using a custom button. Don't hesitate to email me: email@example.com") End Sub 'Stay Awesome!
Macro MondayHere is the Macro Monday video this macro was featured in. Watch this video to learn how to get the most out of this macro and start using it today!
CustomizationThese lines of code can be customized to personalize this macro.
24 through 33: Update the TimeofDay to get your Greeting and Goodbye to fire at specific times. You can also indicate certain Greetings or Goodbyes to be generated based on the Weekday within these lines of code.
37 EmailBody is the final string that will be entered into your email body. Here is where you can update spacing by adding or removing vbNewLine.
Although you can create a custom button to trigger the Greeting and Goodbye macro on command you can also automate this macro with some additional VBA code.
Here is the additional code that can you used to fire this macro with Outlook’s Reply and Reply All buttons. Copy and Paste this VBA code into your Outlook Session and restart Outlook. You must make your GreetingGoodbye macro Public so it can be called within your Outlook Session.
'Leverage & Lean "Less Clicks, More Results" Option Explicit Private WithEvents oExpl As Explorer Private WithEvents oItem As MailItem Dim bDiscardEvents As Boolean Dim oResponse As MailItem Private Sub Application_Startup() Set oExpl = Application.ActiveExplorer bDiscardEvents = False 'Call the Macros listed below: 'Call MacroName End Sub Private Sub oExpl_SelectionChange() On Error Resume Next Set oItem = oExpl.Selection.Item(1) End Sub Sub oItem_Reply(ByVal Response As Object, Cancel As Boolean) On Error GoTo LeverageLean Cancel = True bDiscardEvents = True 'Display current email selection Set oResponse = oItem.Reply oResponse.Display 'Call the Macros listed below: 'Call MacroName Exit Sub LeverageLean: End Sub Sub oItem_ReplyAll(ByVal Response As Object, Cancel As Boolean) On Error GoTo LeverageLean Cancel = True bDiscardEvents = True 'Display current email selection Set oResponse = oItem.ReplyAll oResponse.Display 'Call the Macros listed below: 'Call MacroName Exit Sub LeverageLean: End Sub 'Stay Awesome!