'Why does VBA code fail when setting a new instance of an Outlook Application object?

The first sub routine runs fine when called upon application startup, while the second does not bring up Outlook and instead takes a minute or two, culminating in an error. The only difference is that in the "set" statement, I put the word "New". I am aware that this means it is trying to open up a new instance of the Outlook client, while one is already running, but why wouldn't there be a way for the Outlook to deal with the request for a new application while one is already running, or use the new instance instead of the existing instance?

Sub SaveAttachment1_Initialize()
        
        Dim olApp As Outlook.Application
        Dim olNS As Outlook.NameSpace
        
        Set olApp = Outlook.Application
        Set olNS = olApp.GetNamespace("MAPI")
        Set olItems = olNS.GetDefaultFolder(olFolderInbox)
    
    End Sub

Sub SaveAttachment1_Initialize()
            
            Dim olApp As Outlook.Application
            Dim olNS As Outlook.NameSpace
            
            Set olApp = New Outlook.Application
            Set olNS = olApp.GetNamespace("MAPI")
            Set olItems = olNS.GetDefaultFolder(olFolderInbox)
        
        End Sub


Solution 1:[1]

If you are running in Outlook VBA, that line must be

Set olApp = Application

If not, the second one is correct. The first one makes no sense - you are assigning a variable to type (?).

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Dmitry Streblechenko