2015-05-14 2 views
0

Я использую VBA для входа в папку Outlook и помещения тела сообщения в ячейку. Однако по состоянию наVBA не распознает MAPI

set ns = getnamespace("MAPI") 

У меня ошибка «библиотека ошибок автоматизации не зарегистрирована». У меня есть следующие ориентировочные прогнозы связанных ссылки, выбранные (в Excel):

  • Перспектива 14,0 библиотеки объектов,
  • Перспектива SharePoint Social Provider,
  • Outlook Social Provider расширяемость,
  • Outlook View Control

Я использую Excel 2010. Далее следует весь код. Любая помощь будет принята с благодарностью.

Dim ns As Namespace 
Dim inbox As Mapifolder 
Dim item As Object 
Dim atmt As Attachment 
Dim FileName As String 
Dim i As Integer 
Dim SubFolder As Mapifolder 
Dim SubSubFolder As Mapifolder 
Dim VariableName As Name 
Dim Working As Workbook 
Dim Sheet As Worksheet 


Set ns = getnamespace("MAPI") 
Set inbox = ns.GetDefaultFolder(olFolderInbox) 
Set SubFolder = inbox.Folders("xx") 
Set SubSubFolder = SubFolder.Folders("xxxx") 
Set Working = ThisWorkbook 
Set Sheet = Working.Worksheets("Sheet1") 

If SubSubFolder.Items.Count > 0 Then 

For Each item In SubSubFolder.Items 
Sheet.Range("A1") = item.Body 
Next item 

End If 
+0

'getnamespace()' - метод объекта приложения Outlook: это не метод, доступный непосредственно в Excel VBA. Ваш первый шаг здесь должен состоять в создании экземпляра Outlook (или получения ссылки на уже запущенный экземпляр). Http://www.dicks-clicks.com/excel/olAutomating.htm –

+0

@Tim Williams Hi. Используя код из этой ссылки, я все равно получаю ту же самую ошибку. На этот раз в строке кода Set olApp = New Outlook.Application – New2VBA

+0

Со ссылкой на библиотеку Outlook я не могу реплицировать эту ошибку. –

ответ

2

пространство имен() будет действовать в Outlook, VBA, так как существует внутренняя переменная приложения, которая указывает на объект Outlook.Application и переменная является глобальной. т.е. все его свойства и методы доступны без указания «Application. *»

В случае Excel VBA приложение указывает на экземпляр объекта Excel.Application, поэтому вы должны явно создать и инициализировать объект Outlook.Application :

set olApp = CreateObject("Outlook.Application") 
Set ns = olApp.getnamespace("MAPI") 
... 
Смежные вопросы