人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: db_Magician
●カテゴリ:コンピュータ
✍キーワード:CSV LAN Outlook VBA コピー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● y3kz
●100ポイント ベストアンサー

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

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


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

◎質問者からの返答

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

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

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

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ