【Outlook VBA】

以下のような作業を、OutlookVBAで自動化することは可能でしょうか?

条件:メール受信時、件名に特定の文字列が含まれていた場合

①そのメールの添付ファイル(CSVファイル)を、LAN上の他のコンピュータのCドライブにコピー
②そのファイルを、DATA.CSVにリネームする

また、Outlook VBAを詳しく解説したサイトがあれば
教えてください。
よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2006/12/13 13:22:27
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:y3kz No.1

回答回数31ベストアンサー獲得回数9

ポイント100pt

基本はこういう↓感じになると思います。

Sub mySaveAttachment()
'*******定数:環境に応じて設定******************
    Const SEARCHWORD = "検索する語"
    Const SAVEPATH = "保存ファイルのUNCパス"
'*********************************************
    
    '変数宣言
    Dim myNS As NameSpace 'Outlookアイテムを扱う為の親オブジェクト
    Dim myInBox As MAPIFolder '受信トレイ
    Dim myItem As MailItem '受信トレイ内のメール
    Dim myAttach As Attachment 'メールの添付ファイル
    
    '初期値設定
    Set myNS = Outlook.Application.GetNameSpace("MAPI")
    Set myInBox = myNS.GetDefaultFolder(olFolderInBox)
        
    '受信ボックスの各メールに行う処理
    For Each myItem In myInBox.Items
        
        '件名にSEARCHWORDが含まれていれば以下を実行
        If InStr(myItem.Subject, SEARCHWORD) > 0 Then
            
            'メールの添付ファイルに行う処理
            For Each myAttach In myItem.Attachments
                myAttach.SaveAsFile SAVEPATH
            Next
        End If
    Next
End Sub

(既に同名ファイルがあった場合や、添付ファイルが複数の場合のエラーチェックは省いています。)


OutlookのVBAは解説ページって少ないですよね…。

解説サイトは見つからなかったのですが、こんな↓ページを見つけました。


http://www2s.biglobe.ne.jp/~SATSYS/outlook%20vba.txt


参考になるとよいのですが。

id:db_Magician

わざわざコードまで書いていただきすみません。

教えていただいたコードをカスタマイズし、

Application_NewMailに記述したところ目的の動作になりました。

ネットワーク上の他のPCへのコピーはできませんでしたが、

バッチファイル等で対応できそうです。

教えていただいたサイトも参考になります。

どうもありがとうございました。

2006/12/13 12:41:23

コメントはまだありません

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

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

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

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