Я предоставил обновленный код ниже
- для вывода адресов электронной почты из папки «Входящие» в CSV-файл « c: \ emails.csv » (текущий код не предоставляет «перспективы» для собранных адресов
- приведенный выше код работает с выбранной папкой, а не с папкой "Входящие" согласно вашему запросу
[Обновление: для ясности, это ваш старый код, который использует «раннее связывание», установка этой ссылки не нужна для моего обновленного кода ниже, который использует «позднее связывание»]
Часть A: Ваш существующий код (раннее связывание)
С точки зрения полученной вами ошибки:
В приведенном выше примере кода используется раннее связывание, этот комментарий "Требуется ссылка на Microsoft Scripting Runtime" указывает на то, что вам нужно установить ссылку
- Перейти в меню Сервис
- Выберите «Рекомендации»
- отметьте «Среда выполнения сценариев Microdoft»
Часть B: Мой новый код (позднее связывание - установка ссылки не требуется)
Рабочий код
Sub GetALLEmailAddresses()
Dim objFolder As MAPIFolder
Dim strEmail As String
Dim strEmails As String
Dim objDic As Object
Dim objItem As Object
Dim objFSO As Object
Dim objTF As Object
Set objDic = CreateObject("scripting.dictionary")
Set objFSO = CreateObject("scripting.filesystemobject")
Set objTF = objFSO.createtextfile("C:\emails.csv", 2)
Set objFolder = Application.GetNamespace("Mapi").GetDefaultFolder(olFolderInbox)
For Each objItem In objFolder.Items
If objItem.Class = olMail Then
strEmail = objItem.SenderEmailAddress
If Not objDic.Exists(strEmail) Then
objTF.writeline strEmail
objDic.Add strEmail, ""
End If
End If
Next
objTF.Close
End Sub