2016-09-29 7 views
3

Outlookメールの添付ファイルを特定のフォルダにダウンロードするVBAコードを使用しています。最新のメールの添付ファイルを保存する

私はこのコードを "スクリプトを実行する"というOutlookルールで呼び出しています。ここでは、これが有効なメールを定義しています。

コードは新しいものから古いものまで、最も古いものを提供し、最新のものは提供しません。これは、すべてのメールに同じ名前の添付ファイル用です。

古い添付ファイルをダウンロードして同じ名前の古い添付ファイルを上書きするように、古いものから新しいものに移動するには、以下のコードに何を追加しますか。 itm's添付ファイルのコレクションを見てみると

Public Sub saveAttachtoDisk(itm As Outlook.MailItem) 
Dim objAtt As Outlook.Attachment 
Dim saveFolder As String 
saveFolder = "E:\Projects\Takeda\Data\Zipped Incremental data\incremental\"  
For Each objAtt In itm.Attachments   
    objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName   
    Set objAtt = Nothing  
Next 
End Sub 
+1

ルールは受け取ったアイテムを処理します。最後に受信したアイテムの添付ファイルが最後に保存されたアイテムになります。問題に記載されているような問題は起こり得ないと私は信じている。アイテムを時系列の逆順でどのように処理していますか?既に受け取ったアイテムのフォルダにコードを実行していますか? – niton

+0

アイテムに同じ名前の添付ファイルが複数ある場合は、datelastmodifiedファイルを探します – 0m3r

答えて

0

、それは添付ファイルの数を保持しているcount性質を持っています。カウントを得ることができますし、forループのステップでcountを後ろに移動します。あなたのforループの中では、attachmentsオブジェクトを参照して添付ファイルオブジェクト内の個々の添付ファイルアイテムを参照します:

Dim attachmentCount as integer  
Dim saveFolder As String 
saveFolder = "E:\Projects\Takeda\Data\Zipped Incremental data\incremental\" 
attachmentCounter = itm.Attachments.count  
For i = attachmentCounter to 1 Step -1   
    itm.Attachments(i).SaveAsFile saveFolder & "\" & itm.Attachments(i).DisplayName   

Next 
関連する問題