VBA 无法识别 MAPI

VBA not Recognizing MAPI

我正在使用 VBA 进入 outlook 文件夹并将邮件正文放入单元格中。然而

 set ns = getnamespace("MAPI")

我收到一个错误 "automation error library not registered"。我选择了以下 outlook 相关参考资料(在 Excel 内):

我使用的是 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

Namespace() 在 Outlook VBA 中有效,因为有一个指向 Outlook.Application 对象的内部应用程序变量,并且该变量是全局变量。即它的所有属性和方法都可以在不指定 "Application.*"

的情况下使用

在 Excel VBA 的情况下,Application 指向 Excel.Application 对象的实例,因此您必须显式创建并初始化 Outlook.Application 对象:

set olApp = CreateObject("Outlook.Application")
Set ns = olApp.getnamespace("MAPI")
...