特定の Outlook フォルダーで電子メールの添付ファイルを検索し、それらを特定の場所に保存する VBA コードがあります。
電子メールを Outlook フォルダーに送信してからマクロを起動する Outlook ルールがあります。私のコンピューターではコードが自動的に実行されませんが、別のコンピューターでは実行されます。電子メールが受信され、ルールによってフォルダーにドロップされますが、コードは実行されません。VB エディターを使用してコードを手動で実行すると、添付ファイルが適切な場所に保存されます。
フォルダー名とパス名が正しいことを確認しました (どちらにしても、間違っていると、手動で実行したときにコードが正しく実行されません)。
見通しのルール:
メッセージの到着後にこのルールを適用する
xxxxxxxxxxxx から
件名に xxxx を含む
このマシンのみ
xxxxx フォルダに移動します。
Project1.ThisOutlookSession.Save を実行します。
VBA コード:
Sub Save(item As Outlook.MailItem)
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("xxxxxxx")
Set oApp = CreateObject("Shell.Application")
For Each myitem In olFolder.Items
For Each att In myitem.Attachments
att.SaveAsFile "\\.............\" & att.FileName
myitem.Attachments.Remove 1
myitem.Save
Next
Next
End Sub