Как импортировать локальный MSG-файл в папку Outlook с помощью VBA - PullRequest
0 голосов
/ 20 мая 2019

Теперь я пытаюсь скопировать локальный файл .msg (например, C: \ temp \ DUMMY.msg) в папку Outlook (например, AAA).Я могу получить entryID папки AAA с помощью MAPI, но я не знаю, как переместить локальный MSG-файл в Outlook Dir с помощью VBA.(в C # я нашел эти вопросы и ответы, но, похоже, это не для VBA) Импорт MSG-файла в пользовательскую папку Outlook с использованием c #

Кто-нибудь знает, как это сделать?

Я уже импортировал библиотеку, написанную ниже.

  • Visual Basic для приложений
  • Библиотека объектов Microsoft Excel 15.0
  • OLE Automation
  • Библиотека объектов Microsoft Office 15.0
  • Регулятор Microsoft VBScript Expressionions 5.5
  • Среда выполнения сценариев Microsoft
  • Библиотека объектов Microsoft Forms 2.0

Я назначил целевую папку Outlookobj to MyFolder как этот

Ответы [ 2 ]

0 голосов
/ 21 мая 2019

, как упомянул Дмитрий, я использовал Namespace.OpensharedItem, и это сработало.


Dim Filename As String
Filename = "C:\temp\DUMMY.msg"

Dim DestOlDirID As String
DesOlDirID = "(entry id value)"

Dim oApp
Set oApp = CreateObject("Outlook.Application")

'Get Namespace object
Dim oNamespace As Namespace
Set oNamespace = oApp.GetNamespace("MAPI")

'assign outlook folder by entry ID
Dim oFolder As Folder
Set oFolder = oApp.Session.GetFolderFromID(DesOlDirID)

Dim oItem As Object
Set oItem = oNamespace.OpenSharedItem(Filename)

'actually this move method did not delete original .msg local file. it works like copy.
oItem.Move oFolder

Set oItem = Nothing
Set oFolder = Nothing
Set oNamespace = Nothing
0 голосов
/ 21 мая 2019

Вы можете использовать Namespace.OpenSharedItem, указав полное имя файла MSG, а затем скопировать (MailItem.Copy) или переместить его (MailItem.Move).

...