Outlook VBAです。


受信と同時に添付ファイル(Excel)をフォルダに自動保存したいのですが
下記条件があります。

添付ファイル名:*勤務管理* (「勤務管理」を含むファイル名)
差出人:Aさんのみ
フォルダ;指定フォルダ(任意)

この作業が自動で出来ると大変助かりますっ
宜しくお願い致しますっ

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/08/16 00:24:52
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント60pt

今週は 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....

id:hananeko_0

今回もワクワクしながら確認しました! 

アドレスで確認する&固定フォルダへの保存で実行し

そのフォルダを開くと・・・「すごい!本当に保存されてる!」(≧∇≦)b 感激っ

今回もバッチリの回答で解決しました!

参考HPも私の疑問にピッタリのページばかりでした!

(自分でも時間をかけて探したのですが、こんなヒット系のページには会えませんでした)

Mookさんの回答は毎回「本当にすごい」と心から感心してます。 (^人^)感謝♪

A(*゚ー゚*)R(ー゚* )I(゚ )G( )A( ゚)T(* ゚ー)O(*゚▽゚*)ノ~☆

2008/08/16 00:24:00
  • id:Mook
    ファイル名のチェックが、「勤務管理」ではなく「勤怠管理」になっていました。
    正しく修正して動作確認をしてください。
  • id:Mook
    無事に動いたようで何よりでした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません