web-dev-qa-db-ja.com

メールの添付ファイルをネットワークドライブに自動的に保存する

毎朝、サーバーから自動生成された電子メールを受け取ります。これにはスプレッドシートの添付ファイルが含まれています。これらの電子メールをキャプチャするルールをOutlookで作成しました。ここで、添付ファイル(.xls)の名前を= today()に変更し、ネットワークドライブ上のフォルダーに保存するマクロを作成したいと思います。このマクロは、平日の8:00に実行する必要があります。 Excelで多くのVBAを作成しましたが、Outlookの経験はありません。これは可能でしょうか?そして、誰かがそれを行う方法を知っていますか?

よろしくスタール

2
user269646

なぜ保存を8:00まで遅らせるのですか?

「これらの電子メールをキャプチャする」というルールでは、「スクリプトを実行する」で保存します。

Sub saveAttachtoDisk(itm As Outlook.MailItem)

Dim objAtt As Outlook.Attachment
Dim saveFolder As String

saveFolder = "D:\temp"  ' change to your path

For Each objAtt In itm.Attachments
    objAtt.SaveAsFile saveFolder & "\" & Format(Now, "yyyy-mm-dd") & ".xls"
Next

End Sub

コメントに基づいて編集:

SaveAttachtoDisk内でこれを実行するかどうかはわかりませんが、保存後にワークブックを操作するには、Excelがあります。

GetObjectを試してください。エラーが発生した場合は、CreateObject( "Excel.Application")を使用してください http://support.Microsoft.com/kb/288902

次に、Excel VBAを知っているので、このようなもの、または任意の方法が機能します。

Workbooks.Open(ファイル名)

Worksheets(1).Name = "シート1"


コメントに基づいて2を編集します。

パラメータを渡す必要があります。

ここでメールアイテムを開き、次にF8を開きます。

Sub saveAttachtoDisk_test
Dim currItem as mailitem
set curritem = activeinspector.currentitem
saveAttachtoDisk curritem
set currItem = nothing
end sub
1
niton

私が質問にコメントした理由は、OutlookVBAを使用するだけでは目的の結果を達成するための適切な方法がないためです。サードパーティのソリューションを見つける必要があります。私は個人的に自分の会社の製品をお勧めできます: ReliefJet Essentials for Outlook Professional Edition 。これは、Windowsタスクスケジューラを使用して添付ファイルの保存ユーティリティをスケジュールするために使用できるコマンドラインを提供します。 not添付ファイル自体の名前を変更することはできますが、可能添付ファイルについて想像できる任意の日時パターンで名前が付けられたフォルダを作成できます。 。唯一の欠点:あなたはそれを支払う必要があります。

0
thims