Причина, по которой ваш код не работает, потому что, когда вы обращаетесь к библиотеке с поздним связыванием, например, с помощью CreateObject("Outlook.Application"), встроенные в библиотеку перечисления недоступны.
Поскольку вы не использовали Option Explicitдирективу, Excel автоматически объявляется olFolderContactsкак переменная типа Variant со значением Empty. Это неверный аргумент, на который ссылается сообщение об ошибке.
Если вы хотите продолжить использовать позднюю привязку, либо добавьте следующий код, чтобы константы были доступны:
'v0.1.1
' Required if late binding Outlook
' (Note that this list excludes newer values available in Outlook 2010 or later)
Private Enum OlDefaultFolders
olFolderDeletedItems = ------------3
olFolderOutbox = ------------------4
olFolderSentMail = ----------------5
olFolderInbox = ------------------(6)
olFolderCalendar = ----------------9
olFolderContacts = --------------(10)
olFolderJournal = ----------------11
olFolderNotes = ------------------12
olFolderTasks = ------------------13
olFolderDrafts = ----------------(16)
olPublicFoldersAllPublicFolders = 18
olFolderConflicts = --------------19
olFolderSyncIssues = ------------(20)
olFolderLocalFailures = ----------21
olFolderServerFailures = --------(22)
olFolderJunk = ------------------(23)
olFolderRssFeeds = --------------(25)
olFolderToDo = ------------------(28)
olFolderManagedEmail = ----------(29)
End Enum
или жестко запишите значения:
'v0.1.0
Set OutlookApp = CreateObject("Outlook.Application")
Set myNamespace = OutlookApp.GetNameSpace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(10)
myFolder.Display
Обратите внимание, что я изменил имя переменной для объекта приложения Outlook, чтобы избежать путаницы со встроенным Applicationобъектом.
Я считаю, что по крайней мере при разработке кода лучше использовать раннее связывание. Это можно сделать, добавив ссылку на библиотеку объектов Outlook в проект:

и используя следующий код:
'v0.1.0
Dim OutlookApp As Outlook.Application
Set OutlookApp = New Outlook.Application
Dim myNamespace As Outlook.Namespace
Set myNamespace = OutlookApp.GetNameSpace("MAPI")
Dim myFolder As Outlook.MAPIFolder
Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)
myFolder.Display
Последний совет - всегда использовать Option Explicitдирективу и всегда явно объявлять все ваши переменные.
Лучший способ убедиться в этом - установить Require Variable Declarationопцию:

Таким образом, VBE всегда вставляет директиву в каждый созданный модуль.