受信と同時に添付ファイル(Excel)をフォルダに自動保存したいのですが
下記条件があります。
添付ファイル名:*勤務管理* (「勤務管理」を含むファイル名)
差出人:Aさんのみ
フォルダ;指定フォルダ(任意)
この作業が自動で出来ると大変助かりますっ
宜しくお願い致しますっ
今週は Outlook で動作確認できる環境がないので、動作の確認出来ていませんが、
一応のサンプルです(多分動くとは思うのですが)。
'----------------------------------------- Private Sub Application_NewMailEx(ByVal EntryIDCollection As String) '----------------------------------------- Dim ns As NameSpace Set ns = GetNamespace("MAPI") Dim mf As MAPIFolder Set mf = ns.Folders("個人用フォルダ").Folders("受信トレイ") Dim gf As MAPIFolder Dim mis As Variant mis = Split(EntryIDCollection, ",") Dim mai As MailItem Dim mi As Variant Dim oFile As Object For Each mi In mis Set mai = Application.Session.GetItemFromID(mi) '★名前で確認する場合 If mai.SenderName = "Aさん" Then '★アドレスで確認する場合 '--- If mai.SenderEmailAddress = "A-san@foo.bar.ne.jp" Then For Each oFile In mai.Attachments '★ファイル名のチェック If InStr(oFile.Filename, "勤怠管理") > 0 Then saveFile oFile End If Next End If Next End Sub '----------------------------------------- Sub saveFile(objFile As Object) '----------------------------------------- Dim Shell, myPath Set Shell = CreateObject("Shell.Application") Set myPath = Shell.BrowseForFolder(&O0, "ファイルを保存するフォルダを選んでください", &H1 + &H10, "C:\") If Not myPath Is Nothing Then objFile.SaveAsFile myPath.Items.Item.Path & "\" & objFile.DisplayName End If End Sub
指定フォルダの意味が、毎回指定ではなく、固定のフォルダを指定しておきたいの
でしたら、上記の関数部分を下記のように直接指定してください。
'----------------------------------------- Sub saveFile(objFile As Object) '----------------------------------------- objFile.SaveAsFile "C:\MyData\SaveFolder\" & objFile.DisplayName End Sub
正常に動かない場合はコメントください。日曜の夜にはフォローアップします。
参考URL
http://degitalmobile.seesaa.net/article/34346539.html
http://officetanaka.net/excel/vba/tips/tips39.htm
http://peiyorin.cocolog-nifty.com/blog/2007/04/outlook_vba_0c9f....
正しく修正して動作確認をしてください。