Hi Joel,
A couple of observations.
... and probably the Microsoft Outlook XX reference as well.
The Outlook reference definitely needs to be checked to make the Outlook objects available.
Your use of CreateObject to reference Outlook creates a new hidden Outlook application. Whille this may be OK for thoroughly tested and robust code, it is not good for more fragile code during development and testing. I suggest that OutApp.Visible = True be included early in the code. Also I propose that the following is better when obtaining a reference to Outlook.
Code:
On Error Resume Next
Set OutApp= GetObject(, "Outlook.Application")
Select Case Err.Number
Case 0
On Error GoTo OpenOutlookSession_Error
Case 429
On Error GoTo OpenOutlookSession_Error
Set OutApp= CreateObject("Outlook.Application")
Case Else
GoTo OpenOutlookSession_Error
End Select
This code will reference the existing Outlook application, if any, before attempting to create a new session. The dangers of having multiple copies of 'hanging' hidden applications are multifarious.