以下を使用して、メールを Outlook のフォルダーに移動しています。
Dim chemin() as String
chemin = Split(path, "/")
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("LiveLink").Folders("Livelink HQE").Folders("Entreprise").Folders(chemin(1)).Folders(chemin(2)).Folders(chemin(3))
myEntryID = myFolder.EntryID
myEntryID = myFolder.StoreID
objMail.Move myNameSpace.GetFolderFromID(myEntryID, storeID)
すべてが実際に機能しています。ご覧のとおり、フォルダーは Livelink にあります。実際、Livelink サーバーの応答は非常に遅く、私にはどうすることもできません。
私の懸念は、 .Folders() を何度も使用することですが、.Folders("Livelink/root/folder1/folder2/")
. しかし、これは明らかに機能していません。.Folders コマンドは毎回 Livelink サーバーに ping を実行する必要があるため、このコード行を実行するだけで実際には 10 秒かかります (フォルダーが深くなるほど、到達するのに時間がかかります)それ)。
Outlook の特定のフォルダーに直接アクセスしてメールを移動する他の方法はありますか? 各フォルダ (Livelink のフォルダも含む) に何らかの Outlook ID があることは知っていますが、それを利用する方法がわかりません。次のことを試しましたが、まだ機能していません。
Dim folder As MAPIFolder
Dim myNameSpace As Outlook.NameSpace
Set myNameSpace = Application.GetNamespace("MAPI")
Set folder = myNameSpace.GetFolderFromID(target, Application.GetNamespace("MAPI").Folders("LiveLink").storeID)
これにより、GetFolderfromID() を実行するとエラーが発生します。vartarget
は実際には、メールをコピーするフォルダーの EntryID です。